<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-09-05T23:43:42.003458" rpa="false" schemaversion="5">
<suite id="s1" name="netconf-callhome.txt" source="/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/suites/netconf/callhome">
<suite id="s1-s1" name="Callhome" source="/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/suites/netconf/callhome/callhome.robot">
<kw name="Suite Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Install Docker Compose on tools system" owner="NetconfCallHome">
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-05T23:43:42.522937" level="INFO">${tools_connection} = 1</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-09-05T23:43:42.522438" elapsed="0.000536"/>
</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-09-05T23:43:42.525110" level="INFO">Length is 0.</msg>
<msg time="2026-09-05T23:43:42.525212" 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-09-05T23:43:42.524650" elapsed="0.000589"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-05T23:43:42.525375" elapsed="0.000366"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-05T23:43:42.526679" level="INFO">Logging into '10.30.171.30:22' as 'jenkins'.</msg>
<msg time="2026-09-05T23:43:43.030821" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-190-generic x86_64)

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

 System information as of Sat Sep  5 23:43:05 UTC 2026

  System load:  0.14               Processes:             106
  Usage of /:   20.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.30
  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

New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-50633-57-1-docker-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-09-05T23:43:42.526231" elapsed="0.504720"/>
</kw>
<msg time="2026-09-05T23:43:43.031040" 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-09-05T23:43:42.525896" elapsed="0.505250"/>
</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-09-05T23:43:42.524214" elapsed="0.507048"/>
</kw>
<msg time="2026-09-05T23:43:43.031313" 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-09-05T23:43:42.523735" elapsed="0.507626"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-09-05T23:43:42.523166" elapsed="0.508273"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-09-05T23:43:43.031498" elapsed="0.000049"/>
</return>
<msg time="2026-09-05T23:43:43.031743" level="INFO">${netopeer_conn_id} = 1</msg>
<var>${netopeer_conn_id}</var>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-09-05T23:43:42.521995" elapsed="0.509774"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:43.032381" level="INFO">${netopeer_conn_id} = 1</msg>
<arg>${netopeer_conn_id}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:43.031958" elapsed="0.000463"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-05T23:43:43.035475" level="INFO">sudo curl -L "https://github.com/docker/compose/releases/download/1.11.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose</msg>
<arg>sudo curl -L "https://github.com/docker/compose/releases/download/1.11.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-05T23:43:43.032545" elapsed="0.002986"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Read Until Prompt" owner="SSHLibrary">
<msg time="2026-09-05T23:43:43.643089" level="INFO">[?2004l  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 8053k  100 8053k    0     0  14.0M      0 --:--:-- --:--:-- --:--:-- 14.0M
[?2004h[jenkins@releng-50633-57-1-docker-0 ~]&gt;</msg>
<doc>Consumes and returns the server output until the prompt is found.</doc>
<status status="PASS" start="2026-09-05T23:43:43.036636" elapsed="0.607206"/>
</kw>
<msg time="2026-09-05T23:43:43.644002" level="INFO">${output} = [?2004l  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     ...</msg>
<var>${output}</var>
<arg>30s</arg>
<arg>2s</arg>
<arg>SSHLibrary.Read_Until_Prompt</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-05T23:43:43.036177" elapsed="0.607854"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:43.644495" level="INFO">Executing command 'sudo chmod +x /usr/local/bin/docker-compose'.</msg>
<msg time="2026-09-05T23:43:43.667374" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:43:43.667496" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:43:43.667536" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:43:43.667577" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>sudo chmod +x /usr/local/bin/docker-compose</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:43.644257" elapsed="0.023340"/>
</kw>
<doc>Install docker-compose on tools system.</doc>
<status status="PASS" start="2026-09-05T23:43:42.518583" elapsed="1.149108"/>
</kw>
<kw name="Pull Netopeer2 Docker Image" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:43.668367" level="INFO">Executing command 'docker pull sysrepo/sysrepo-netopeer2:latest'.</msg>
<msg time="2026-09-05T23:43:53.823897" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:43:53.824309" level="INFO">${stdout} = latest: Pulling from sysrepo/sysrepo-netopeer2
d51af753c3d3: Pulling fs layer
fc878cd0a91c: Pulling fs layer
399fb1102f3f: Pulling fs layer
6154df8ff988: Pulling fs layer
fee5db0ff82f: Pulling fs laye...</msg>
<msg time="2026-09-05T23:43:53.824408" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:43:53.824491" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker pull sysrepo/sysrepo-netopeer2:latest</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:43.668210" elapsed="10.156328"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:53.825396" level="INFO">Executing command 'docker images'.</msg>
<msg time="2026-09-05T23:43:53.947239" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:43:53.947490" level="INFO">${stdout} = IMAGE                              ID             DISK USAGE   CONTENT SIZE   EXTRA
sysrepo/sysrepo-netopeer2:latest   36cc1d841c97        914MB          232MB        </msg>
<msg time="2026-09-05T23:43:53.947579" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:43:53.947843" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker images</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:53.824961" elapsed="0.122934"/>
</kw>
<doc>Pulls the netopeer image from the docker repository.</doc>
<status status="PASS" start="2026-09-05T23:43:43.667886" elapsed="10.280181"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:43:53.992329" level="INFO">[chan 4] Opened sftp connection (server version 3)</msg>
<msg time="2026-09-05T23:43:54.005358" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/docker-compose.yaml' -&gt; '/home/jenkins//docker-compose.yaml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/docker-compose.yaml</arg>
<arg>.</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:43:53.948388" elapsed="0.057093"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.015443" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/init_configuration.sh' -&gt; '/home/jenkins//init_configuration.sh'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/init_configuration.sh</arg>
<arg>.</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:43:54.005801" elapsed="0.009760"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.016291" level="INFO">Executing command 'sed -i -e 's/ODL_SYSTEM_IP/10.30.170.144/g' docker-compose.yaml'.</msg>
<msg time="2026-09-05T23:43:54.029160" level="INFO">Command exited with return code 0.</msg>
<arg>sed -i -e 's/ODL_SYSTEM_IP/${ODL_SYSTEM_IP}/g' docker-compose.yaml</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.015909" elapsed="0.013369"/>
</kw>
<kw name="Set_Variable_If_At_Least_Sulfur" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set_Variable_If_At_Least" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set Variable If" owner="BuiltIn">
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-09-05T23:43:54.060713" elapsed="0.000998"/>
</kw>
<msg time="2026-09-05T23:43:54.061817" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>BuiltIn.Set_Variable_If</arg>
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-05T23:43:54.059884" elapsed="0.002050"/>
</kw>
<arg>sulfur</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Compare ${lower_bound} to vanadium and return 4334 if vanadium is at least ${lower_bound},
return 6666 otherwise.</doc>
<status status="PASS" start="2026-09-05T23:43:54.059153" elapsed="0.002936"/>
</kw>
<msg time="2026-09-05T23:43:54.062206" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Set_Variable_If_At_Least</arg>
<arg>sulfur</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-05T23:43:54.044363" elapsed="0.017932"/>
</kw>
<msg time="2026-09-05T23:43:54.062508" level="INFO">${netconf_cl_ssh_port} = 4334</msg>
<var>${netconf_cl_ssh_port}</var>
<arg>4334</arg>
<arg>6666</arg>
<doc>Compare sulfur to vanadium and return ${value_if_true} if vanadium is at least sulfur, return ${value_if_false} otherwise.</doc>
<status status="PASS" start="2026-09-05T23:43:54.043770" elapsed="0.018786"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.063158" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_SSH/4334/g' docker-compose.yaml'.</msg>
<msg time="2026-09-05T23:43:54.084627" level="INFO">Command exited with return code 0.</msg>
<arg>sed -i -e 's/NETCONF_CH_SSH/${netconf_cl_ssh_port}/g' docker-compose.yaml</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.062852" elapsed="0.021931"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.085308" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml'.</msg>
<msg time="2026-09-05T23:43:54.136497" level="INFO">Command exited with return code 0.</msg>
<arg>sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.085069" elapsed="0.051547"/>
</kw>
<kw name="Set_Variable_If_At_Least_Scandium" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set_Variable_If_At_Least" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set Variable If" owner="BuiltIn">
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-09-05T23:43:54.167251" elapsed="0.000955"/>
</kw>
<msg time="2026-09-05T23:43:54.168309" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>BuiltIn.Set_Variable_If</arg>
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-05T23:43:54.166504" elapsed="0.001908"/>
</kw>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Compare ${lower_bound} to vanadium and return "connection-status":"connected" if vanadium is at least ${lower_bound},
return "netconf-node-topology:connection-status":"connected" otherwise.</doc>
<status status="PASS" start="2026-09-05T23:43:54.165847" elapsed="0.002716"/>
</kw>
<msg time="2026-09-05T23:43:54.168770" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Set_Variable_If_At_Least</arg>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-05T23:43:54.150898" elapsed="0.017975"/>
</kw>
<msg time="2026-09-05T23:43:54.169080" level="INFO">${substring1} = "connection-status":"connected"</msg>
<var>${substring1}</var>
<arg>"connection-status":"connected"</arg>
<arg>"netconf-node-topology:connection-status":"connected"</arg>
<doc>Compare scandium to vanadium and return ${value_if_true} if vanadium is at least scandium, return ${value_if_false} otherwise.</doc>
<status status="PASS" start="2026-09-05T23:43:54.150380" elapsed="0.018776"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.170034" level="INFO">${substring2} = "node-id":"netopeer2"</msg>
<var>${substring2}</var>
<arg>"node-id":"netopeer2"</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-05T23:43:54.169456" elapsed="0.000640"/>
</kw>
<kw name="Set_Variable_If_At_Least_Scandium" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set_Variable_If_At_Least" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set Variable If" owner="BuiltIn">
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-09-05T23:43:54.191456" elapsed="0.000546"/>
</kw>
<msg time="2026-09-05T23:43:54.192066" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>BuiltIn.Set_Variable_If</arg>
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-05T23:43:54.190994" elapsed="0.001157"/>
</kw>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Compare ${lower_bound} to vanadium and return "available-capabilities" if vanadium is at least ${lower_bound},
return "netconf-node-topology:available-capabilities" otherwise.</doc>
<status status="PASS" start="2026-09-05T23:43:54.190563" elapsed="0.001681"/>
</kw>
<msg time="2026-09-05T23:43:54.192295" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Set_Variable_If_At_Least</arg>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-05T23:43:54.181394" elapsed="0.010955"/>
</kw>
<msg time="2026-09-05T23:43:54.192474" level="INFO">${substring3} = "available-capabilities"</msg>
<var>${substring3}</var>
<arg>"available-capabilities"</arg>
<arg>"netconf-node-topology:available-capabilities"</arg>
<doc>Compare scandium to vanadium and return ${value_if_true} if vanadium is at least scandium, return ${value_if_false} otherwise.</doc>
<status status="PASS" start="2026-09-05T23:43:54.181065" elapsed="0.011439"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.193204" level="INFO">${netconf_mount_expected_values} = ['"connection-status":"connected"', '"node-id":"netopeer2"', '"available-capabilities"']</msg>
<var>${netconf_mount_expected_values}</var>
<arg>${substring1}</arg>
<arg>${substring2}</arg>
<arg>${substring3}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:43:54.192732" elapsed="0.000514"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.193869" level="INFO">${netconf_mount_expected_values} = ['"connection-status":"connected"', '"node-id":"netopeer2"', '"available-capabilities"']</msg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.193443" elapsed="0.000477"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.198309" level="INFO">${CREATE_GLOBAL_CREDENTIALS_REQ} = /w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_global_credentials.json</msg>
<arg>${CREATE_GLOBAL_CREDENTIALS_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_global_credentials.json</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.194103" elapsed="0.004265"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.202621" level="INFO">${CREATE_SSH_DEVICE_REQ} = /w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_ssh_device.json</msg>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_ssh_device.json</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.198564" elapsed="0.004112"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.205577" level="INFO">${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY} = /w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_device_hostkey_only.json</msg>
<arg>${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY}</arg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_device_hostkey_only.json</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.202816" elapsed="0.002802"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.209056" level="INFO">${CREATE_TLS_DEVICE_REQ} = /w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_tls_device.json</msg>
<arg>${CREATE_TLS_DEVICE_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/create_tls_device.json</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.205777" elapsed="0.003320"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.212453" level="INFO">${ADD_KEYSTORE_ENTRY_REQ} = /w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/add_keystore_entry.json</msg>
<arg>${ADD_KEYSTORE_ENTRY_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/add_keystore_entry.json</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.209255" elapsed="0.003239"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.216039" level="INFO">${ADD_PRIVATE_KEY_REQ} = /w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/add_private_key.json</msg>
<arg>${ADD_PRIVATE_KEY_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/add_private_key.json</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.212632" elapsed="0.003449"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.219367" level="INFO">${ADD_TRUSTED_CERTIFICATE} = /w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/add_trusted_certificate.json</msg>
<arg>${ADD_TRUSTED_CERTIFICATE}</arg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/json/add_trusted_certificate.json</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.216232" elapsed="0.003206"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.219661" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./incorrect_ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:43:54.566573" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./incorrect_ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.219563" elapsed="0.347228"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.567476" level="INFO">Executing command 'awk '{print $2}' incorrect_ssh_host_rsa_key.pub'.</msg>
<msg time="2026-09-05T23:43:54.621082" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:43:54.621440" level="INFO">${incorrect_public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+...</msg>
<var>${incorrect_public_key}</var>
<arg>awk '{print $2}' incorrect_ssh_host_rsa_key.pub</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.567218" elapsed="0.054300"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.631510" level="INFO">${INCORRECT_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+...</msg>
<arg>${INCORRECT_PUB_KEY}</arg>
<arg>${incorrect_public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-05T23:43:54.621969" elapsed="0.009662"/>
</kw>
<doc>Get the suite ready for callhome test cases.</doc>
<status status="PASS" start="2026-09-05T23:43:42.518292" elapsed="12.113517"/>
</kw>
<test id="s1-s1-t1" name="CallHome over SSH with correct device credentials" line="17">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:43:54.635025" level="INFO">Creating Session using : alias=session, url=http://10.30.170.144:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71d230e30950&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-09-05T23:43:54.634408" elapsed="0.001214"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.636332" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-05T23:43:54.668925" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.636060" elapsed="0.032985"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.669608" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:43:54.862690" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.669403" elapsed="0.193492"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.863561" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-05T23:43:54.912423" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:43:54.912537" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBN...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:54.863312" elapsed="0.049249"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.916360" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBN...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:43:54.912757" elapsed="0.003647"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-05T23:43:54.633814" elapsed="0.282653"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.957680" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml' -&gt; '/home/jenkins/configuration-files/ietf-netconf-server.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml</arg>
<arg>configuration-files/ietf-netconf-server.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:43:54.916939" elapsed="0.040866"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:43:54.968330" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml' -&gt; '/home/jenkins/configuration-files/ietf-keystore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml</arg>
<arg>configuration-files/ietf-keystore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:43:54.958090" elapsed="0.010356"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-05T23:43:54.916673" elapsed="0.051898"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-05T23:43:54.978584" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:43:54.970001" elapsed="0.008713"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:43:54.980012" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:43:54.980336" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:43:54.979600" elapsed="0.000790"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:43:54.981457" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:43:54.980721" elapsed="0.000826"/>
</kw>
<status status="PASS" start="2026-09-05T23:43:54.979054" elapsed="0.002698"/>
</kw>
<status status="PASS" start="2026-09-05T23:43:54.978774" elapsed="0.003035"/>
</branch>
<status status="PASS" start="2026-09-05T23:43:54.969927" elapsed="0.011930"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:43:54.982693" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
      ...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:43:54.982163" elapsed="0.000586"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:43:54.983534" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
          },...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:43:54.983036" elapsed="0.000551"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:43:54.984374" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:43:54.983896" elapsed="0.000530"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:43:54.985204" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:43:54.984730" elapsed="0.000545"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:43:55.954446" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '610', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
          "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT"
        }
    }
}
 
 </msg>
<msg time="2026-09-05T23:43:55.954608" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 04-Sep-2026 23:43:55 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:43:55.954869" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:43:54.985558" elapsed="0.969366"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:43:55.955347" elapsed="0.004940"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>root</arg>
<arg>root</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-05T23:43:54.969103" elapsed="0.991321"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:43:55.961158" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-05T23:43:56.318701" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:43:56.319006" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:43:56.319109" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:43:56.319264" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:43:55.960766" elapsed="0.358558"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:43:56.322880" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:43:56.322014" elapsed="0.000941"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:43:56.323809" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:43:56.323176" elapsed="0.000884"/>
</branch>
<status status="PASS" start="2026-09-05T23:43:56.323091" elapsed="0.001058"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:43:56.385955" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:43:56.387675" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:43:56.387896" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:43:56.338472" elapsed="0.049476"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:43:56.388798" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:43:56.388150" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:43:56.393641" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:43:56.389263" elapsed="0.004506"/>
</kw>
<status status="PASS" start="2026-09-05T23:43:56.388969" elapsed="0.004872"/>
</branch>
<status status="PASS" start="2026-09-05T23:43:56.388074" elapsed="0.005817"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:43:56.394184" elapsed="0.000425"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:43:56.395349" elapsed="0.004883"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:43:56.395065" elapsed="0.005250"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:43:56.405522" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:43:56.400762" elapsed="0.005100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:43:56.400494" elapsed="0.005532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:43:56.394759" elapsed="0.011429">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:43:56.337573" elapsed="0.068845">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:43:56.321230" elapsed="0.085476">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:43:58.409556" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:43:58.408657" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:43:58.410421" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:43:58.409854" elapsed="0.000684"/>
</branch>
<status status="PASS" start="2026-09-05T23:43:58.409804" elapsed="0.000785"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:43:58.436737" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:43:58.437079" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:43:58.437315" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:43:58.424560" elapsed="0.012807"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:43:58.438199" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:43:58.437532" elapsed="0.000785"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:43:58.443108" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:43:58.438642" elapsed="0.004609"/>
</kw>
<status status="PASS" start="2026-09-05T23:43:58.438374" elapsed="0.004947"/>
</branch>
<status status="PASS" start="2026-09-05T23:43:58.437490" elapsed="0.005881"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:43:58.443624" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:43:58.444711" elapsed="0.004549"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:43:58.444426" elapsed="0.004917"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:43:58.454383" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:43:58.449790" elapsed="0.004766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:43:58.449521" elapsed="0.005209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:43:58.444113" elapsed="0.010844">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:43:58.423709" elapsed="0.031497">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:43:58.407734" elapsed="0.047691">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:00.458326" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:00.457413" elapsed="0.000978"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:00.459199" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:00.458585" elapsed="0.000732"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:00.458539" elapsed="0.000828"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:00.486001" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:00.486334" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:00.486556" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:00.474156" elapsed="0.012452"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:00.487457" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:00.486807" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:00.492430" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:00.487897" elapsed="0.004641"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:00.487621" elapsed="0.004987"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:00.486765" elapsed="0.005962"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:00.492988" elapsed="0.000390"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:00.494066" elapsed="0.004674"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:00.493818" elapsed="0.005004"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:00.503953" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:00.499273" elapsed="0.004972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:00.498995" elapsed="0.005402">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:00.493500" elapsed="0.011024">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:00.473277" elapsed="0.031497">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:00.456450" elapsed="0.048522">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:02.507735" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:02.506799" elapsed="0.001018"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:02.508854" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:02.508076" elapsed="0.000941"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:02.508001" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:02.535944" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:02.536295" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:02.536527" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:02.524635" elapsed="0.011949"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:02.537485" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:02.536796" elapsed="0.000810"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:02.542531" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:02.537995" elapsed="0.004764"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:02.537659" elapsed="0.005175"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:02.536750" elapsed="0.006131"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:02.543175" elapsed="0.000391"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:02.544397" elapsed="0.005966"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:02.544077" elapsed="0.006396"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:02.556040" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:02.551054" elapsed="0.005265">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:02.550735" elapsed="0.005748">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:02.543721" elapsed="0.012903">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:02.523571" elapsed="0.033324">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:02.505878" elapsed="0.051229">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:04.559880" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:04.559002" elapsed="0.000940"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:04.560656" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:04.560113" elapsed="0.000681"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:04.560069" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:04.585289" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:04.585573" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:04.585882" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:04.574731" elapsed="0.011205"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:04.586753" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:04.586098" elapsed="0.000772"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:04.591647" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:04.587204" elapsed="0.004573"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:04.586920" elapsed="0.004927"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:04.586058" elapsed="0.005833"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:04.592171" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:04.593201" elapsed="0.004516"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:04.592924" elapsed="0.004874"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:04.602846" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:04.598233" elapsed="0.004799">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:04.597963" elapsed="0.005253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:04.592629" elapsed="0.010716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:04.573858" elapsed="0.029715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:04.558049" elapsed="0.045746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:06.606417" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:06.605552" elapsed="0.000929"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:06.607222" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:06.606649" elapsed="0.000787"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:06.606607" elapsed="0.000884"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:06.633575" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:06.633893" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:06.634113" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:06.621941" elapsed="0.012256"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:06.634974" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:06.634358" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:06.639887" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:06.635441" elapsed="0.004551"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:06.635167" elapsed="0.004895"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:06.634318" elapsed="0.005789"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:06.640391" elapsed="0.000396"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:06.641458" elapsed="0.004638"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:06.641207" elapsed="0.005010"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:06.651338" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:06.646652" elapsed="0.004849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:06.646408" elapsed="0.005238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:06.640904" elapsed="0.010889">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:06.621046" elapsed="0.030952">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:06.604701" elapsed="0.047627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:08.655156" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:08.654239" elapsed="0.000986"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:08.655988" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:08.655402" elapsed="0.000709"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:08.655358" elapsed="0.000838"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:08.683990" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:08.684352" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:08.684592" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:08.671006" elapsed="0.013646"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:08.685699" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:08.684885" elapsed="0.000971"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:08.691415" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:08.686281" elapsed="0.005262"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:08.685913" elapsed="0.005718"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:08.684835" elapsed="0.006873"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:08.692029" elapsed="0.000431"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:08.693243" elapsed="0.005533"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:08.692920" elapsed="0.005952"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:08.704446" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:08.699361" elapsed="0.005270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:08.699056" elapsed="0.005808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:08.692591" elapsed="0.012615">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:08.670100" elapsed="0.035430">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:08.653248" elapsed="0.052608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:10.708683" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:10.707804" elapsed="0.000946"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:10.709490" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:10.708926" elapsed="0.000683"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:10.708882" elapsed="0.000777"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:10.738323" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:10.738616" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:10.738848" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:10.724042" elapsed="0.014860"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:10.739727" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:10.739066" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:10.744624" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:10.740198" elapsed="0.004557"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:10.739901" elapsed="0.004924"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:10.739027" elapsed="0.005841"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:10.745162" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:10.746210" elapsed="0.004548"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:10.745934" elapsed="0.004905"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:10.755985" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:10.751283" elapsed="0.005095">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:10.750999" elapsed="0.005535">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:10.745639" elapsed="0.011017">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:10.723171" elapsed="0.033740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:10.706911" elapsed="0.050196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:12.759797" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:12.758941" elapsed="0.000919"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:12.760567" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:12.760028" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:12.759986" elapsed="0.000767"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:12.789798" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:12.790079" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:12.790329" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:12.775484" elapsed="0.014906"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:12.791219" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:12.790575" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:12.796225" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:12.791713" elapsed="0.004697"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:12.791390" elapsed="0.005090"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:12.790530" elapsed="0.005994"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:12.796799" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:12.797805" elapsed="0.004611"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:12.797538" elapsed="0.004958"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:12.807607" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:12.802925" elapsed="0.004872">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:12.802655" elapsed="0.005290">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:12.797281" elapsed="0.010786">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:12.774471" elapsed="0.033833">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:12.758069" elapsed="0.050460">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:14.811388" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:14.810505" elapsed="0.000946"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:14.812208" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:14.811617" elapsed="0.000706"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:14.811576" elapsed="0.000795"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:14.842808" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:14.843097" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:14.843424" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:14.826818" elapsed="0.016660"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:14.844282" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:14.843638" elapsed="0.000760"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:14.849444" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:14.844718" elapsed="0.004830"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:14.844447" elapsed="0.005171"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:14.843599" elapsed="0.006085"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:14.849937" elapsed="0.000400"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:14.850998" elapsed="0.004566"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:14.850747" elapsed="0.004896"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:14.860729" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:14.856066" elapsed="0.004814">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:14.855826" elapsed="0.005224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:14.850451" elapsed="0.010775">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:14.825899" elapsed="0.035546">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:14.809595" elapsed="0.052050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:16.864563" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:16.863601" elapsed="0.001039"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:16.865403" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:16.864842" elapsed="0.000769"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:16.864796" elapsed="0.000892"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:16.894621" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:16.894959" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:16.895206" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:16.880150" elapsed="0.015113"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:16.896147" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:16.895441" elapsed="0.000830"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:16.901071" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:16.896601" elapsed="0.004615"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:16.896324" elapsed="0.004967"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:16.895397" elapsed="0.005941"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:16.901607" elapsed="0.000489"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:16.902815" elapsed="0.004767"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:16.902534" elapsed="0.005158"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:16.912880" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:16.908108" elapsed="0.004929">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:16.907861" elapsed="0.005357">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:16.902254" elapsed="0.011092">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:16.879256" elapsed="0.034329">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:16.862620" elapsed="0.051321">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:18.916709" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:18.915830" elapsed="0.000944"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:18.917556" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:18.916943" elapsed="0.000753"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:18.916901" elapsed="0.000844"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:18.950949" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:18.951279" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:18.951500" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:18.934373" elapsed="0.017181"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:18.952393" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:18.951740" elapsed="0.000771"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:18.957248" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:18.952840" elapsed="0.004512"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:18.952561" elapsed="0.004860"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:18.951699" elapsed="0.005765"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:18.957734" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:18.958742" elapsed="0.004611"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:18.958476" elapsed="0.004965"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:18.968508" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:18.963899" elapsed="0.004786">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:18.963613" elapsed="0.005222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:18.958213" elapsed="0.010847">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:18.933437" elapsed="0.035870">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:18.914914" elapsed="0.054594">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:20.972292" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:20.971413" elapsed="0.000942"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:20.973063" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:20.972526" elapsed="0.000683"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:20.972483" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:21.001355" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:21.001667" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:21.001866" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:20.987480" elapsed="0.014437"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:21.002737" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:21.002075" elapsed="0.000776"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:21.007580" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:21.003194" elapsed="0.004517"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:21.002900" elapsed="0.004881"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:21.002037" elapsed="0.005788"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:21.008096" elapsed="0.000451"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:21.009242" elapsed="0.005563"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:21.008966" elapsed="0.005922"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:21.019932" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:21.015329" elapsed="0.004949">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:21.015051" elapsed="0.005416">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:21.008698" elapsed="0.011914">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:20.986507" elapsed="0.034389">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:20.970468" elapsed="0.050694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:23.024384" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:23.023281" elapsed="0.001183"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:23.025557" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:23.024826" elapsed="0.000912"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:23.024625" elapsed="0.001182"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:23.054193" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:23.054533" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:23.054803" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:23.042209" elapsed="0.012672"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:23.055856" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:23.055065" elapsed="0.000919"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:23.061219" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:23.056351" elapsed="0.005109"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:23.056038" elapsed="0.005520"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:23.055022" elapsed="0.006600"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:23.061998" elapsed="0.000480"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:23.063234" elapsed="0.004954"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:23.062924" elapsed="0.005351"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:23.074403" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:23.068716" elapsed="0.005908">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:23.068441" elapsed="0.006376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:23.062600" elapsed="0.012345">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:23.041025" elapsed="0.034194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:23.022251" elapsed="0.053182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:25.078161" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:25.077301" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:25.078932" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:25.078397" elapsed="0.000649"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:25.078355" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:25.104783" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:25.105065" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:25.105399" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:25.094161" elapsed="0.011291"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:25.106260" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:25.105611" elapsed="0.000764"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:25.111072" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:25.106707" elapsed="0.004503"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:25.106424" elapsed="0.004860"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:25.105573" elapsed="0.005773"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:25.111612" elapsed="0.000377"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:25.112702" elapsed="0.004596"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:25.112429" elapsed="0.004954"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:25.122414" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:25.117814" elapsed="0.004748">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:25.117545" elapsed="0.005188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:25.112155" elapsed="0.010701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:25.093276" elapsed="0.029780">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:25.076428" elapsed="0.046862">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:27.126048" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:27.125221" elapsed="0.000889"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:27.126851" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:27.126312" elapsed="0.000750"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:27.126270" elapsed="0.000845"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:27.152436" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:27.152757" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:27.152954" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:27.141040" elapsed="0.011966"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:27.153814" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:27.153198" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:27.158698" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:27.154261" elapsed="0.004547"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:27.153978" elapsed="0.004900"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:27.153158" elapsed="0.005765"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:27.159204" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:27.160215" elapsed="0.004963"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:27.159942" elapsed="0.005321"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:27.170340" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:27.165699" elapsed="0.004793">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:27.165427" elapsed="0.005240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:27.159680" elapsed="0.011118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:27.140192" elapsed="0.030812">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:27.124311" elapsed="0.046991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:29.174036" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:29.173210" elapsed="0.000888"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:29.174839" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:29.174301" elapsed="0.000656"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:29.174257" elapsed="0.000747"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:29.198946" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:29.199277" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:29.199486" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:29.188882" elapsed="0.010656"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:29.200408" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:29.199737" elapsed="0.000789"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:29.205399" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:29.200869" elapsed="0.004636"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:29.200576" elapsed="0.004998"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:29.199694" elapsed="0.005949"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:29.205900" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:29.206944" elapsed="0.004584"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:29.206685" elapsed="0.004946"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:29.216717" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:29.212046" elapsed="0.004826">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:29.211798" elapsed="0.005223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:29.206393" elapsed="0.010880">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:29.188012" elapsed="0.029481">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:29.172336" elapsed="0.045379">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:31.220547" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:31.219619" elapsed="0.001023"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:31.221387" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:31.220822" elapsed="0.000682"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:31.220775" elapsed="0.000779"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:31.248075" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:31.248490" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:31.248773" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:31.236854" elapsed="0.012014"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:31.249786" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:31.249048" elapsed="0.000857"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:31.255081" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:31.250247" elapsed="0.004976"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:31.249957" elapsed="0.005337"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:31.249003" elapsed="0.006336"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:31.255616" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:31.256669" elapsed="0.004544"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:31.256389" elapsed="0.004908"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:31.266503" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:31.261735" elapsed="0.005042">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:31.261461" elapsed="0.005471">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:31.256083" elapsed="0.010971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:31.235851" elapsed="0.031454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:31.218724" elapsed="0.048780">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:33.270174" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:33.269293" elapsed="0.000947"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:33.270950" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:33.270407" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:33.270365" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:33.295735" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:33.296028" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:33.296260" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:33.285451" elapsed="0.010863"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:33.297115" elapsed="0.000094"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:33.296479" elapsed="0.000841"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:33.302602" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:33.297690" elapsed="0.005108"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:33.297399" elapsed="0.005469"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:33.296440" elapsed="0.006473"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:33.303197" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:33.304245" elapsed="0.004658"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:33.303938" elapsed="0.005051"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:33.314483" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:33.309572" elapsed="0.005089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:33.309270" elapsed="0.005540">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:33.303669" elapsed="0.011262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:33.284539" elapsed="0.030626">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:33.268410" elapsed="0.046980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:35.318211" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:35.317290" elapsed="0.000988"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:35.319022" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:35.318455" elapsed="0.000722"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:35.318410" elapsed="0.000821"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:35.345321" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:35.345638" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:35.345932" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:35.334057" elapsed="0.011929"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:35.346818" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:35.346187" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:35.351722" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:35.347274" elapsed="0.004551"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:35.346983" elapsed="0.004910"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:35.346114" elapsed="0.005823"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:35.352216" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:35.353244" elapsed="0.004720"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:35.352964" elapsed="0.005083"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:35.363080" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:35.358518" elapsed="0.004746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:35.358270" elapsed="0.005141">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:35.352702" elapsed="0.010832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:35.333206" elapsed="0.030561">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:35.316378" elapsed="0.047587">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:37.366605" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:37.365747" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:37.367392" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:37.366838" elapsed="0.000800"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:37.366798" elapsed="0.000897"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:37.392638" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:37.392929" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:37.393179" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:37.382228" elapsed="0.011006"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:37.394022" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:37.393396" elapsed="0.000769"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:37.398828" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:37.394475" elapsed="0.004459"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:37.394218" elapsed="0.004784"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:37.393357" elapsed="0.005689"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:37.399329" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:37.400342" elapsed="0.004486"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:37.400055" elapsed="0.004856"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:37.409931" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:37.405348" elapsed="0.004730">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:37.405074" elapsed="0.005189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:37.399797" elapsed="0.010606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:37.381349" elapsed="0.029283">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:37.364854" elapsed="0.046054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:39.413614" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:39.412740" elapsed="0.000939"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:39.414396" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:39.413851" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:39.413808" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:39.441225" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:39.441579" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:39.441784" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:39.428662" elapsed="0.013175"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:39.442651" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:39.441995" elapsed="0.000777"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:39.447888" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:39.443079" elapsed="0.004913"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:39.442824" elapsed="0.005242"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:39.441958" elapsed="0.006206"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:39.448479" elapsed="0.000398"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:39.449642" elapsed="0.004623"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:39.449319" elapsed="0.005029"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:39.459474" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:39.454778" elapsed="0.004868">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:39.454512" elapsed="0.005285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:39.448988" elapsed="0.011019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:39.427740" elapsed="0.032510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:39.411821" elapsed="0.048627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:41.463145" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:41.462278" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:41.463922" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:41.463380" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:41.463339" elapsed="0.000749"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:41.489224" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:41.489508" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:41.489735" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:41.478283" elapsed="0.011503"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:41.490593" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:41.489944" elapsed="0.000775"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:41.495395" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:41.491029" elapsed="0.004531"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:41.490769" elapsed="0.004887"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:41.489905" elapsed="0.005811"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:41.495970" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:41.496974" elapsed="0.004467"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:41.496731" elapsed="0.004792"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:41.508516" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:41.501953" elapsed="0.006817">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:41.501712" elapsed="0.007211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:41.496451" elapsed="0.012597">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:41.477371" elapsed="0.031916">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:41.461366" elapsed="0.048120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:43.512149" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:43.511284" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:43.512926" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:43.512385" elapsed="0.000659"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:43.512343" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:43.537786" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:43.538073" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:43.538322" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:43.527610" elapsed="0.010763"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:43.539172" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:43.538556" elapsed="0.000731"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:43.543931" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:43.539628" elapsed="0.004530"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:43.539335" elapsed="0.004897"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:43.538494" elapsed="0.005783"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:43.544549" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:43.545563" elapsed="0.004509"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:43.545295" elapsed="0.004889"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:43.555280" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:43.550613" elapsed="0.004816">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:43.550347" elapsed="0.005251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:43.545005" elapsed="0.010716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:43.526731" elapsed="0.029197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:43.510431" elapsed="0.045720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:45.558785" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:45.557923" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:45.559578" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:45.559013" elapsed="0.000683"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:45.558972" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:45.584626" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:45.584917" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:45.585267" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:45.573649" elapsed="0.011678"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:45.586171" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:45.585491" elapsed="0.000801"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:45.591441" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:45.586631" elapsed="0.004937"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:45.586343" elapsed="0.005296"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:45.585451" elapsed="0.006231"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:45.591932" elapsed="0.000371"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:45.592941" elapsed="0.004637"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:45.592696" elapsed="0.004965"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:45.602653" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:45.598068" elapsed="0.004735">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:45.597824" elapsed="0.005128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:45.592414" elapsed="0.010661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:45.572780" elapsed="0.030542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:45.557059" elapsed="0.046481">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:47.606263" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:47.605394" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:47.607025" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:47.606515" elapsed="0.000742"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:47.606453" elapsed="0.000859"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:47.631360" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:47.631675" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:47.631870" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:47.621206" elapsed="0.010715"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:47.632728" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:47.632080" elapsed="0.000762"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:47.637589" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:47.633184" elapsed="0.004512"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:47.632891" elapsed="0.004873"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:47.632041" elapsed="0.005768"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:47.638057" elapsed="0.000385"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:47.639156" elapsed="0.004577"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:47.638873" elapsed="0.004941"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:47.648864" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:47.644245" elapsed="0.004768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:47.643974" elapsed="0.005242">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:47.638605" elapsed="0.010751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:47.620340" elapsed="0.029245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:47.604486" elapsed="0.045363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:49.652524" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:49.651656" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:49.653341" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:49.652797" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:49.652754" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:49.678550" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:49.678844" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:49.679057" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:49.667779" elapsed="0.011329"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:49.679909" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:49.679305" elapsed="0.000714"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:49.684707" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:49.680359" elapsed="0.004453"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:49.680067" elapsed="0.004814"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:49.679263" elapsed="0.005662"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:49.685203" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:49.686192" elapsed="0.004448"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:49.685922" elapsed="0.004799"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:49.695815" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:49.691147" elapsed="0.004814">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:49.690879" elapsed="0.005227">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:49.685670" elapsed="0.010707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:49.666897" elapsed="0.029718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:49.650761" elapsed="0.046050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:51.699412" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:51.698542" elapsed="0.000971"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:51.700268" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:51.699691" elapsed="0.000696"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:51.699648" elapsed="0.000788"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:51.725587" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:51.725868" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:51.726059" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:51.714362" elapsed="0.011748"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:51.726914" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:51.726303" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:51.732062" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:51.727355" elapsed="0.004843"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:51.727074" elapsed="0.005193"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:51.726263" elapsed="0.006048"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:51.732582" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:51.733577" elapsed="0.004466"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:51.733316" elapsed="0.004835"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:51.743049" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:51.738574" elapsed="0.004742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:51.738313" elapsed="0.005176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:51.733025" elapsed="0.010591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:51.713516" elapsed="0.030301">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:51.697695" elapsed="0.046312">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:53.746667" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:53.745751" elapsed="0.000980"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:53.747496" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:53.746903" elapsed="0.000710"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:53.746859" elapsed="0.000802"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:53.772497" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:53.772787" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:53.772979" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:53.761542" elapsed="0.011488"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:53.773827" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:53.773221" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:53.778835" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:53.774263" elapsed="0.004770"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:53.773987" elapsed="0.005120"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:53.773182" elapsed="0.006003"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:53.779463" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:53.780561" elapsed="0.004529"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:53.780292" elapsed="0.005014"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:53.790363" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:53.785770" elapsed="0.004769">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:53.785509" elapsed="0.005176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:53.779950" elapsed="0.010860">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:53.760675" elapsed="0.030339">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:53.744855" elapsed="0.046386">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:55.793867" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:55.793016" elapsed="0.000915"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:55.794681" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:55.794097" elapsed="0.000700"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:55.794056" elapsed="0.000789"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:55.822189" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:55.822507" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:55.822804" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:55.811295" elapsed="0.011562"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:55.823664" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:55.823017" elapsed="0.000762"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:55.828445" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:55.824080" elapsed="0.004471"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:55.823829" elapsed="0.004791"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:55.822977" elapsed="0.005688"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:55.828911" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:55.829902" elapsed="0.004467"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:55.829661" elapsed="0.004810"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:55.839454" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:55.834874" elapsed="0.004735">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:55.834635" elapsed="0.005120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:55.829382" elapsed="0.010495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:55.810417" elapsed="0.029661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:55.792164" elapsed="0.048195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:57.843167" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:57.842245" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:57.844001" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:57.843446" elapsed="0.000805"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:57.843376" elapsed="0.000932"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:57.870899" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:57.871250" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:57.871513" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:57.859104" elapsed="0.012467"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:57.872465" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:57.871758" elapsed="0.000822"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:57.877514" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:57.872886" elapsed="0.004735"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:57.872629" elapsed="0.005061"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:57.871711" elapsed="0.006024"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:57.877990" elapsed="0.000376"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:57.879050" elapsed="0.005148"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:57.878772" elapsed="0.005510"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:57.889303" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:57.884718" elapsed="0.004757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:57.884471" elapsed="0.005151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:57.878507" elapsed="0.011242">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:57.858027" elapsed="0.031931">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:57.841345" elapsed="0.048978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:44:59.893110" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:44:59.892264" elapsed="0.000940"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:44:59.893914" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:59.893376" elapsed="0.000653"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:59.893333" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:44:59.919235" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:44:59.919565" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:44:59.919767" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:44:59.908225" elapsed="0.011595"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:44:59.920748" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:44:59.920030" elapsed="0.000838"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:44:59.925639" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:44:59.921244" elapsed="0.004499"/>
</kw>
<status status="PASS" start="2026-09-05T23:44:59.920919" elapsed="0.004895"/>
</branch>
<status status="PASS" start="2026-09-05T23:44:59.919972" elapsed="0.005886"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:44:59.926180" elapsed="0.000397"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:44:59.927268" elapsed="0.004503"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:44:59.926960" elapsed="0.004893"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:44:59.937340" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:44:59.932291" elapsed="0.005248">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:44:59.932018" elapsed="0.005680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:44:59.926692" elapsed="0.011233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:44:59.907355" elapsed="0.030867">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:44:59.891359" elapsed="0.047112">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:01.941369" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:01.940515" elapsed="0.000941"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:01.942180" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:01.941627" elapsed="0.000672"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:01.941584" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:01.966981" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:01.967425" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:01.967709" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:01.956687" elapsed="0.011091"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:01.968845" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:01.967992" elapsed="0.001003"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:01.975430" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:01.969470" elapsed="0.006090"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:01.969065" elapsed="0.006566"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:01.967938" elapsed="0.007736"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:01.975924" elapsed="0.000375"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:01.977090" elapsed="0.005924"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:01.976765" elapsed="0.006332"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:01.988108" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:01.983562" elapsed="0.004843">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:01.983294" elapsed="0.005298">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:01.976432" elapsed="0.012327">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:01.955816" elapsed="0.033152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:01.939667" elapsed="0.049527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:03.991216" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:03.990656" elapsed="0.000604"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:03.991703" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:03.991395" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:03.991350" elapsed="0.000451"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:04.008742" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:04.008997" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:04.009196" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:03.999952" elapsed="0.009286"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:04.009931" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:04.009411" elapsed="0.000607"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:04.013515" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:04.010280" elapsed="0.003392"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:04.010062" elapsed="0.003661"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:04.009369" elapsed="0.004391"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:04.013951" elapsed="0.000280"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:04.014716" elapsed="0.003496"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:04.014528" elapsed="0.003743"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:04.021914" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:04.018588" elapsed="0.003443">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:04.018410" elapsed="0.003754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:04.014314" elapsed="0.007947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:03.999344" elapsed="0.023083">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:03.989982" elapsed="0.032592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:06.025305" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:06.024457" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:06.026070" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:06.025558" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:06.025515" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:06.050430" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:06.050724" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:06.051012" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:06.040767" elapsed="0.010300"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:06.051882" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:06.051264" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:06.056755" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:06.052360" elapsed="0.004497"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:06.052047" elapsed="0.004880"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:06.051223" elapsed="0.005749"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:06.057256" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:06.058256" elapsed="0.004557"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:06.057982" elapsed="0.004911"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:06.067888" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:06.063353" elapsed="0.004682">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:06.063054" elapsed="0.005158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:06.057727" elapsed="0.010633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:06.039883" elapsed="0.028686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:06.023568" elapsed="0.045195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:08.071402" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:08.070545" elapsed="0.000921"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:08.072175" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:08.071634" elapsed="0.000781"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:08.071591" elapsed="0.000881"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:08.096977" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:08.097333" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:08.097556" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:08.086920" elapsed="0.010690"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:08.098423" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:08.097772" elapsed="0.000768"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:08.103352" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:08.098863" elapsed="0.004598"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:08.098590" elapsed="0.004940"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:08.097732" elapsed="0.005845"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:08.103829" elapsed="0.000380"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:08.104848" elapsed="0.004567"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:08.104603" elapsed="0.004894"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:08.114614" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:08.109899" elapsed="0.004867">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:08.109658" elapsed="0.005255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:08.104342" elapsed="0.010693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:08.085977" elapsed="0.029303">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:08.069676" elapsed="0.045931">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:10.118701" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:10.117632" elapsed="0.001142"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:10.119613" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:10.118985" elapsed="0.000754"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:10.118936" elapsed="0.000856"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:10.147944" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:10.148285" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:10.148525" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:10.136191" elapsed="0.012386"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:10.149493" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:10.148770" elapsed="0.000841"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:10.154481" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:10.149914" elapsed="0.004672"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:10.149662" elapsed="0.004994"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:10.148722" elapsed="0.005978"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:10.154955" elapsed="0.000393"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:10.155987" elapsed="0.004963"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:10.155733" elapsed="0.005300"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:10.166034" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:10.161493" elapsed="0.004726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:10.161231" elapsed="0.005159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:10.155462" elapsed="0.011152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:10.134958" elapsed="0.031876">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:10.116663" elapsed="0.050368">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:12.170033" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:12.169084" elapsed="0.001025"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:12.170929" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:12.170378" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:12.170318" elapsed="0.000779"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:12.195449" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:12.195736" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:12.195940" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:12.185107" elapsed="0.010884"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:12.196831" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:12.196193" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:12.201670" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:12.197310" elapsed="0.004463"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:12.196997" elapsed="0.004845"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:12.196150" elapsed="0.005737"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:12.202169" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:12.203191" elapsed="0.004546"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:12.202904" elapsed="0.004915"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:12.213054" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:12.208253" elapsed="0.005123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:12.207980" elapsed="0.005586">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:12.202645" elapsed="0.011072">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:12.184225" elapsed="0.029709">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:12.168078" elapsed="0.046085">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:14.216924" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:14.216041" elapsed="0.000946"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:14.217742" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:14.217189" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:14.217112" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:14.242309" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:14.242604" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:14.242825" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:14.232545" elapsed="0.010332"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:14.243775" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:14.243104" elapsed="0.000784"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:14.248629" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:14.244240" elapsed="0.004713"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:14.243938" elapsed="0.005091"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:14.243058" elapsed="0.006014"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:14.249389" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:14.250457" elapsed="0.004730"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:14.250191" elapsed="0.005106"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:14.260278" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:14.255709" elapsed="0.004724">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:14.255465" elapsed="0.005115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:14.249888" elapsed="0.010814">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:14.231588" elapsed="0.029317">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:14.215114" elapsed="0.045984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:16.263750" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:16.262881" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:16.264571" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:16.263986" elapsed="0.000702"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:16.263942" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:16.289016" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:16.289434" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:16.289746" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:16.278725" elapsed="0.011075"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:16.290621" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:16.289965" elapsed="0.000772"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:16.295480" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:16.291038" elapsed="0.004546"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:16.290787" elapsed="0.004866"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:16.289924" elapsed="0.005772"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:16.295946" elapsed="0.000395"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:16.296952" elapsed="0.005359"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:16.296712" elapsed="0.005686"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:16.307340" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:16.302808" elapsed="0.004685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:16.302562" elapsed="0.005080">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:16.296454" elapsed="0.011307">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:16.277833" elapsed="0.030129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:16.261991" elapsed="0.046192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:18.310814" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:18.309957" elapsed="0.000921"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:18.311616" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:18.311046" elapsed="0.000788"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:18.311004" elapsed="0.000885"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:18.336583" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:18.336907" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:18.337169" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:18.325988" elapsed="0.011259"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:18.338188" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:18.337450" elapsed="0.000896"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:18.343597" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:18.338677" elapsed="0.005033"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:18.338399" elapsed="0.005385"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:18.337402" elapsed="0.006429"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:18.344100" elapsed="0.000426"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:18.345243" elapsed="0.004828"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:18.344921" elapsed="0.005279"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:18.355543" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:18.350650" elapsed="0.005050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:18.350392" elapsed="0.005466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:18.344648" elapsed="0.011341">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:18.325007" elapsed="0.031272">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:18.309075" elapsed="0.047515">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:20.359327" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:20.358462" elapsed="0.000931"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:20.360082" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:20.359568" elapsed="0.000685"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:20.359525" elapsed="0.000778"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:20.386917" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:20.387294" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:20.387520" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:20.375277" elapsed="0.012294"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:20.388404" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:20.387741" elapsed="0.000781"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:20.394212" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:20.388824" elapsed="0.005497"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:20.388573" elapsed="0.005820"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:20.387701" elapsed="0.006737"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:20.394691" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:20.395700" elapsed="0.004553"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:20.395453" elapsed="0.004883"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:20.405348" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:20.400745" elapsed="0.004755">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:20.400500" elapsed="0.005147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:20.395172" elapsed="0.010698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:20.374401" elapsed="0.031684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:20.357574" elapsed="0.048767">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:22.409296" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:22.408335" elapsed="0.001041"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:22.410193" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:22.409576" elapsed="0.000739"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:22.409530" elapsed="0.000836"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:22.439334" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:22.439672" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:22.439888" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:22.424744" elapsed="0.015198"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:22.440824" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:22.440154" elapsed="0.000785"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:22.446198" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:22.441347" elapsed="0.004980"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:22.440990" elapsed="0.005409"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:22.440077" elapsed="0.006365"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:22.446708" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:22.447795" elapsed="0.004740"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:22.447539" elapsed="0.005088"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:22.457843" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:22.453065" elapsed="0.005083">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:22.452808" elapsed="0.005534">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:22.447272" elapsed="0.011247">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:22.423810" elapsed="0.034947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:22.407374" elapsed="0.051616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:24.461691" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:24.460755" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:24.462614" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:24.461939" elapsed="0.000797"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:24.461885" elapsed="0.000906"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:24.488427" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:24.488750" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:24.488974" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:24.476978" elapsed="0.012049"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:24.489929" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:24.489276" elapsed="0.000769"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:24.494891" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:24.490450" elapsed="0.004644"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:24.490097" elapsed="0.005121"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:24.489228" elapsed="0.006035"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:24.495524" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:24.496547" elapsed="0.004493"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:24.496297" elapsed="0.004887"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:24.506280" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:24.501615" elapsed="0.004841">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:24.501371" elapsed="0.005234">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:24.495980" elapsed="0.010750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:24.476053" elapsed="0.030883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:24.459874" elapsed="0.047302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:26.509891" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:26.509034" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:26.510694" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:26.510166" elapsed="0.000648"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:26.510078" elapsed="0.000785"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:26.534237" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:26.534519" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:26.534817" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:26.525112" elapsed="0.009759"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:26.535664" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:26.535031" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:26.540548" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:26.536075" elapsed="0.004575"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:26.535826" elapsed="0.004893"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:26.534993" elapsed="0.005768"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:26.541004" elapsed="0.000398"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:26.542024" elapsed="0.004541"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:45:26.541760" elapsed="0.004885"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:26.551594" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:26.547042" elapsed="0.004700">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:45:26.546804" elapsed="0.005086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:26.541509" elapsed="0.010502">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:26.524287" elapsed="0.027974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:26.508110" elapsed="0.044350">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-09-05T23:45:26.552643" level="FAIL">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>CONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-05T23:43:56.319819" elapsed="90.233273">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-05T23:45:26.553504" elapsed="0.000045"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:26.555196" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-05T23:45:26.940826" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:45:26.941229" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:45:26.941323" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:45:26.941407" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:26.554804" elapsed="0.386650"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:26.942585" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:26.941886" elapsed="0.000786"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:26.943470" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-05T23:45:27.303028" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:45:27.303426" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:45:27.303520" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:45:27.303606" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:26.943050" elapsed="0.360604"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.304515" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-05T23:45:27.373395" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:45:27.373634" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-05T23:45:27.373750" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:45:27.373836" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:27.304059" elapsed="0.069823"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.374482" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-05T23:45:27.425470" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:27.374268" elapsed="0.051343"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:27.446083" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:27.446243" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:27.446430" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:45:27.425928" elapsed="0.020559"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:27.475490" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 path_url=/rests/data/netconf-keystore:keystore 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01h976scv5xfjh137nicchz40990.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:27.475815" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:45:27.476079" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:45:27.446782" elapsed="0.029424"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-05T23:45:26.554188" elapsed="0.922205"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-09-05T23:43:54.631965" elapsed="92.844557">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCPHVXPyAkk6yOZRGoJKQahIrFv3DQOHdZWJalafU2v89ciJ1POM08rHCvcGyqebTVbzSq+Mjv8XpujynVJI+ftGrfEbGc9k3iJYhqsxFsI7S3T+Z/uZFIJjCDeaMZLFRemtSuWyOyAKzoQfCK3mOfZqv6ilBImZ/MoBHOVreBNSMlK8QDXVJCIW+pYGZlo3wNqDrWIN7RFEzqU06qa7oc81WmV+xLQoPzllAPGeYkIuCkKvSS0jHZHSRpuvU7Rls0xEwlqsEyx8oaU6SLNRrUF67U8HQCBLTjwHRu2J9CIT1/wZL2XIBhVjCCLFUX+BdKJPcZ/fxSMnTbTz+86IPIT","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</test>
<test id="s1-s1-t2" name="CallHome over SSH with incorrect device credentials" line="34">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:27.479539" level="INFO">Creating Session using : alias=session, url=http://10.30.170.144:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71d22e185fd0&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-09-05T23:45:27.478981" elapsed="0.000873"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.480395" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-05T23:45:27.493234" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:27.480197" elapsed="0.013164"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.493856" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:45:27.808210" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:27.493647" elapsed="0.314762"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.809187" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-05T23:45:27.857596" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:45:27.857961" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgw...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:27.808818" elapsed="0.049201"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:45:27.867211" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgw...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:45:27.858582" elapsed="0.008729"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-05T23:45:27.478444" elapsed="0.388999"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.907808" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml' -&gt; '/home/jenkins/configuration-files/ietf-netconf-server.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml</arg>
<arg>configuration-files/ietf-netconf-server.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:45:27.868447" elapsed="0.039485"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.919656" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml' -&gt; '/home/jenkins/configuration-files/ietf-keystore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml</arg>
<arg>configuration-files/ietf-keystore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:45:27.908279" elapsed="0.011521"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-05T23:45:27.867835" elapsed="0.052109"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-05T23:45:27.928611" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:27.921483" elapsed="0.007233"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:45:27.930062" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:45:27.930403" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:45:27.929758" elapsed="0.000707"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:45:27.931512" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:45:27.930806" elapsed="0.000790"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:27.929086" elapsed="0.002615"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:27.928771" elapsed="0.002975"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:27.921417" elapsed="0.010373"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:45:27.932602" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
      ...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:45:27.932071" elapsed="0.000585"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:45:27.933433" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
          },...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:45:27.932936" elapsed="0.000550"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:45:27.934377" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "incorrect" ]
          },
...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:45:27.933880" elapsed="0.000551"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:45:27.935347" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "incorrect" ]
          },
...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:45:27.934715" elapsed="0.000689"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:27.961708" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '615', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "incorrect" ]
          },
          "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD"
        }
    }
}
 
 </msg>
<msg time="2026-09-05T23:45:27.961862" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 04-Sep-2026 23:45:27 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:27.962072" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:45:27.935678" elapsed="0.026494"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:45:27.962499" elapsed="0.004445"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-05T23:45:27.920588" elapsed="0.046480"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:45:27.967752" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-05T23:45:28.285685" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:45:28.286045" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:45:28.286191" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:45:28.286281" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:45:27.967410" elapsed="0.318918"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:28.289804" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:28.288953" elapsed="0.000906"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:28.290626" elapsed="0.000460"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:28.290025" elapsed="0.001184"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:28.289977" elapsed="0.001288"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:28.319411" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:28.319706" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:28.319920" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:28.308643" elapsed="0.011329"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:28.320767" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:28.320177" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:28.325608" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:28.321320" elapsed="0.004388"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:28.321019" elapsed="0.004757"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:28.320091" elapsed="0.005732"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:28.326068" elapsed="0.000386"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:28.331758" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:28.327202" elapsed="0.004712">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:28.326896" elapsed="0.005166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:28.326566" elapsed="0.005700">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:28.307695" elapsed="0.024781">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:28.288237" elapsed="0.044435">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:30.335525" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:30.334516" elapsed="0.001072"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:30.336330" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:30.335757" elapsed="0.001063"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:30.335715" elapsed="0.001154"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:30.361814" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:30.362172" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:30.362463" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:30.351175" elapsed="0.011341"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:30.363320" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:30.362675" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:30.368309" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:30.363734" elapsed="0.004682"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:30.363482" elapsed="0.005003"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:30.362635" elapsed="0.005895"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:30.368783" elapsed="0.000392"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:30.374801" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:30.369829" elapsed="0.005158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:30.369545" elapsed="0.005640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:30.369285" elapsed="0.006031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:30.350311" elapsed="0.025210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:30.333627" elapsed="0.042091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:32.378541" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:32.377667" elapsed="0.000939"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:32.379350" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:32.378776" elapsed="0.001066"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:32.378734" elapsed="0.001163"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:32.404306" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:32.404591" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:32.404791" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:32.393832" elapsed="0.011011"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:32.405676" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:32.405011" elapsed="0.000778"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:32.410473" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:32.406115" elapsed="0.004461"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:32.405839" elapsed="0.004805"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:32.404970" elapsed="0.005720"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:32.410938" elapsed="0.000392"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:32.416676" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:32.411940" elapsed="0.004888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:32.411696" elapsed="0.005281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:32.411440" elapsed="0.005710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:32.392945" elapsed="0.024417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:32.376746" elapsed="0.040812">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:34.420354" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:34.419469" elapsed="0.000950"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:34.421179" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:34.420598" elapsed="0.001080"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:34.420553" elapsed="0.001174"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:34.452373" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:34.452657" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:34.452875" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:34.437588" elapsed="0.015342"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:34.453740" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:34.453145" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:34.458855" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:34.454214" elapsed="0.005195"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:34.453904" elapsed="0.005667"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:34.453077" elapsed="0.006540"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:34.459869" elapsed="0.000489"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:34.466302" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:34.460968" elapsed="0.005489">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:34.460726" elapsed="0.005883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:34.460469" elapsed="0.006266">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:34.436695" elapsed="0.030251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:34.418552" elapsed="0.048744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:36.469838" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:36.468997" elapsed="0.000902"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:36.470623" elapsed="0.000439"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:36.470088" elapsed="0.001080"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:36.470046" elapsed="0.001173"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:36.495524" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:36.495866" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:36.496151" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:36.485462" elapsed="0.010746"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:36.497099" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:36.496404" elapsed="0.000841"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:36.502464" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:36.497561" elapsed="0.005026"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:36.497295" elapsed="0.005377"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:36.496356" elapsed="0.006365"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:36.503043" elapsed="0.000405"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:36.509459" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:36.504150" elapsed="0.005471">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:36.503835" elapsed="0.005947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:36.503563" elapsed="0.006348">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:36.484460" elapsed="0.025830">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:36.468201" elapsed="0.042291">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:38.513325" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:38.512393" elapsed="0.001001"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:38.514277" elapsed="0.000474"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:38.513601" elapsed="0.001233"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:38.513538" elapsed="0.001347"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:38.540967" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:38.541415" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:38.541644" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:38.529598" elapsed="0.012103"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:38.542627" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:38.541877" elapsed="0.000873"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:38.547679" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:38.543112" elapsed="0.004669"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:38.542802" elapsed="0.005048"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:38.541834" elapsed="0.006059"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:38.548213" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:38.553953" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:38.549288" elapsed="0.004882">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:38.548949" elapsed="0.005379">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:38.548682" elapsed="0.005871">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:38.528716" elapsed="0.026058">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:38.511466" elapsed="0.043508">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:40.557883" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:40.556931" elapsed="0.001055"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:40.558777" elapsed="0.000529"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:40.558237" elapsed="0.001157"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:40.558188" elapsed="0.001258"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:40.585823" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:40.586103" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:40.586347" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:40.576522" elapsed="0.009871"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:40.587106" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:40.586546" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:40.591051" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:40.587519" elapsed="0.003620"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:40.587276" elapsed="0.003911"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:40.586506" elapsed="0.004710"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:40.591405" elapsed="0.000229"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:40.595316" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:40.592087" elapsed="0.003435">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:40.591905" elapsed="0.003719">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:40.591724" elapsed="0.003981">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:40.575791" elapsed="0.020050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:40.555956" elapsed="0.040035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:42.598733" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:42.597871" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:42.599539" elapsed="0.000563"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:42.598993" elapsed="0.001243"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:42.598927" elapsed="0.001366"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:42.626819" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:42.627461" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:42.627815" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:42.615223" elapsed="0.012689"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:42.629536" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:42.628329" elapsed="0.001404"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:42.637516" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:42.630331" elapsed="0.007453"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:42.629823" elapsed="0.008052"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:42.628252" elapsed="0.009678"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:42.638339" elapsed="0.000529"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:42.643502" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:42.639786" elapsed="0.003819">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:42.639512" elapsed="0.004193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:42.639178" elapsed="0.004606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:42.614115" elapsed="0.029805">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:42.596852" elapsed="0.047211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:44.646726" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:44.645813" elapsed="0.000978"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:44.647570" elapsed="0.000442"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:44.646984" elapsed="0.001111"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:44.646942" elapsed="0.001234"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:44.673248" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:44.673544" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:44.673832" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:44.662301" elapsed="0.011585"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:44.674833" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:44.674091" elapsed="0.000881"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:44.679754" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:44.675311" elapsed="0.004548"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:44.675023" elapsed="0.004933"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:44.674049" elapsed="0.005953"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:44.680289" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:44.686114" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:44.681323" elapsed="0.004976">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:44.681043" elapsed="0.005407">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:44.680749" elapsed="0.005825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:44.661405" elapsed="0.025372">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:44.644952" elapsed="0.042044">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:46.689698" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:46.688826" elapsed="0.000935"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:46.690510" elapsed="0.000431"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:46.689964" elapsed="0.001056"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:46.689919" elapsed="0.001152"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:46.718463" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:46.718761" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:46.719004" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:46.705690" elapsed="0.013367"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:46.719841" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:46.719252" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:46.725034" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:46.720317" elapsed="0.004864"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:46.720025" elapsed="0.005236"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:46.719210" elapsed="0.006096"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:46.725560" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:46.731317" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:46.726563" elapsed="0.004907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:46.726319" elapsed="0.005313">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:46.726031" elapsed="0.005753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:46.704807" elapsed="0.027262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:46.687942" elapsed="0.044358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:48.735196" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:48.734214" elapsed="0.001065"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:48.736079" elapsed="0.000442"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:48.735488" elapsed="0.001113"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:48.735441" elapsed="0.001208"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:48.762177" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:48.762470" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:48.762666" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:48.750906" elapsed="0.011814"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:48.763564" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:48.762913" elapsed="0.000799"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:48.768665" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:48.764198" elapsed="0.004570"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:48.763782" elapsed="0.005055"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:48.762842" elapsed="0.006063"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:48.769280" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:48.775798" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:48.770300" elapsed="0.005673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:48.770026" elapsed="0.006129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:48.769744" elapsed="0.006544">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:48.750029" elapsed="0.026497">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:48.733310" elapsed="0.043514">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:50.778717" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:50.778186" elapsed="0.000573"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:50.779249" elapsed="0.000262"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:50.778896" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:50.778865" elapsed="0.000729"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:50.796469" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:50.796666" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:50.796786" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:50.788221" elapsed="0.008596"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:50.797327" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:50.796938" elapsed="0.000460"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:50.800265" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:50.797591" elapsed="0.002738"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:50.797428" elapsed="0.002943"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:50.796914" elapsed="0.003484"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:50.800553" elapsed="0.000209"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:50.804010" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:50.801185" elapsed="0.002923">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:50.801013" elapsed="0.003217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:50.800831" elapsed="0.003477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:50.787671" elapsed="0.016829">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:50.777570" elapsed="0.027053">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:52.807504" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:52.806541" elapsed="0.001040"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:52.808382" elapsed="0.000498"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:52.807761" elapsed="0.001205"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:52.807714" elapsed="0.001306"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:52.836565" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:52.836921" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:52.837217" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:52.825949" elapsed="0.011333"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:52.838289" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:52.837493" elapsed="0.000923"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:52.843871" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:52.838780" elapsed="0.005210"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:52.838479" elapsed="0.005588"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:52.837434" elapsed="0.006682"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:52.844429" elapsed="0.000428"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:52.851225" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:52.845598" elapsed="0.005806">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:52.845299" elapsed="0.006285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:52.844982" elapsed="0.006828">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:52.824798" elapsed="0.027263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:52.805558" elapsed="0.046736">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:54.855457" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:54.854544" elapsed="0.000983"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:54.856287" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:54.855718" elapsed="0.001103"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:54.855672" elapsed="0.001200"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:54.880676" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:54.880848" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:54.880935" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:54.870984" elapsed="0.009973"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:54.881325" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:54.881027" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:54.883438" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:54.881514" elapsed="0.001970"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:54.881398" elapsed="0.002117"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:54.881011" elapsed="0.002524"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:54.883647" elapsed="0.000169"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:54.886331" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:54.884100" elapsed="0.002369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:54.883990" elapsed="0.002552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:54.883871" elapsed="0.002728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:54.870140" elapsed="0.016554">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:54.853595" elapsed="0.033204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:56.889440" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:56.888545" elapsed="0.000958"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:56.890246" elapsed="0.000427"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:56.889673" elapsed="0.001078"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:56.889629" elapsed="0.001197"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:56.915171" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:56.915465" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:56.915683" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:56.904840" elapsed="0.010904"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:56.916545" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:56.915927" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:56.921382" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:56.917014" elapsed="0.004574"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:56.916730" elapsed="0.004930"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:56.915888" elapsed="0.005816"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:56.921982" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:56.927529" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:56.922987" elapsed="0.004688">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:56.922721" elapsed="0.005124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:56.922462" elapsed="0.005510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:56.903970" elapsed="0.024294">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:56.887655" elapsed="0.040863">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:45:58.931310" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:45:58.930442" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:45:58.932151" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:58.931543" elapsed="0.001096"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:58.931501" elapsed="0.001188"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:45:58.958429" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:45:58.958711" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:45:58.959046" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:45:58.947026" elapsed="0.012074"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:45:58.959897" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:45:58.959295" elapsed="0.000714"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:45:58.964609" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:45:58.960336" elapsed="0.004375"/>
</kw>
<status status="PASS" start="2026-09-05T23:45:58.960058" elapsed="0.004745"/>
</branch>
<status status="PASS" start="2026-09-05T23:45:58.959254" elapsed="0.005593"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:45:58.965093" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:45:58.970681" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:45:58.966080" elapsed="0.004775">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:45:58.965838" elapsed="0.005164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:45:58.965566" elapsed="0.005589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:45:58.946176" elapsed="0.025185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:58.929558" elapsed="0.042004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:00.974685" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:00.973820" elapsed="0.000955"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:00.975490" elapsed="0.000434"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:00.974945" elapsed="0.001056"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:00.974904" elapsed="0.001147"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:01.000698" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:01.001008" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:01.001235" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:00.990143" elapsed="0.011146"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:01.002057" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:01.001448" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:01.007004" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:01.002515" elapsed="0.004644"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:01.002252" elapsed="0.004985"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:01.001409" elapsed="0.005873"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:01.007535" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:01.013828" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:01.008612" elapsed="0.005399">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:01.008365" elapsed="0.005853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:01.008004" elapsed="0.006360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:00.989277" elapsed="0.025295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:00.972897" elapsed="0.041902">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:03.017863" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:03.016838" elapsed="0.001097"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:03.018764" elapsed="0.000491"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:03.018152" elapsed="0.001200"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:03.018072" elapsed="0.001356"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:03.044827" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:03.045153" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:03.045361" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:03.035071" elapsed="0.010345"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:03.046312" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:03.045580" elapsed="0.000863"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:03.051347" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:03.046812" elapsed="0.004639"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:03.046496" elapsed="0.005023"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:03.045540" elapsed="0.006023"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:03.051840" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:03.057770" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:03.052889" elapsed="0.005040">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:03.052572" elapsed="0.005535">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:03.052315" elapsed="0.005986">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:03.034087" elapsed="0.024430">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:03.015901" elapsed="0.042937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:05.060369" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:05.059935" elapsed="0.000467"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:05.060768" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:05.060494" elapsed="0.000513"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:05.060471" elapsed="0.000559"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:05.075820" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:05.075980" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:05.076077" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:05.068646" elapsed="0.007455"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:05.076462" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:05.076196" elapsed="0.000318"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:05.081021" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:05.076647" elapsed="0.004506"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:05.076536" elapsed="0.004692"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:05.076178" elapsed="0.005093"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:05.081521" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:05.087168" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:05.082508" elapsed="0.004813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:05.082268" elapsed="0.005203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:05.081983" elapsed="0.005611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:05.068271" elapsed="0.019638">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:05.059475" elapsed="0.028632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:07.091069" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:07.090201" elapsed="0.000960"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:07.091865" elapsed="0.000434"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:07.091331" elapsed="0.001048"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:07.091289" elapsed="0.001138"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:07.115804" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:07.116087" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:07.116318" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:07.106520" elapsed="0.009851"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:07.117173" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:07.116532" elapsed="0.000757"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:07.122211" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:07.117592" elapsed="0.004731"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:07.117340" elapsed="0.005058"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:07.116493" elapsed="0.005949"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:07.122729" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:07.128704" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:07.123763" elapsed="0.005094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:07.123482" elapsed="0.005521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:07.123221" elapsed="0.006028">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:07.105659" elapsed="0.023804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:07.089321" elapsed="0.040356">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:09.132256" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:09.131396" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:09.133029" elapsed="0.000440"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:09.132497" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:09.132455" elapsed="0.001143"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:09.157651" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:09.158027" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:09.158315" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:09.147366" elapsed="0.011011"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:09.159251" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:09.158541" elapsed="0.000827"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:09.164442" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:09.159735" elapsed="0.004827"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:09.159416" elapsed="0.005237"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:09.158502" elapsed="0.006195"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:09.164975" elapsed="0.000411"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:09.170763" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:09.166031" elapsed="0.004979">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:09.165784" elapsed="0.005408">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:09.165498" elapsed="0.005822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:09.146500" elapsed="0.025027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:09.130541" elapsed="0.041209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:11.174399" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:11.173475" elapsed="0.000987"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:11.175190" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:11.174659" elapsed="0.001027"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:11.174615" elapsed="0.001120"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:11.199106" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:11.199424" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:11.199652" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:11.190184" elapsed="0.009520"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:11.200479" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:11.199861" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:11.205404" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:11.200914" elapsed="0.004716"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:11.200664" elapsed="0.005044"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:11.199824" elapsed="0.005929"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:11.206022" elapsed="0.000391"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:11.212082" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:11.207114" elapsed="0.005165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:11.206854" elapsed="0.005587">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:11.206558" elapsed="0.006037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:11.189320" elapsed="0.023499">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:11.172648" elapsed="0.040389">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:13.217332" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:13.216108" elapsed="0.001308"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:13.218413" elapsed="0.000599"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:13.217672" elapsed="0.001482"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:13.217613" elapsed="0.001615"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:13.244871" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:13.245281" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:13.245697" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:13.234685" elapsed="0.011071"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:13.246680" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:13.245930" elapsed="0.000876"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:13.251910" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:13.247149" elapsed="0.004876"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:13.246858" elapsed="0.005244"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:13.245887" elapsed="0.006313"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:13.252541" elapsed="0.000480"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:13.259430" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:13.253895" elapsed="0.005719">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:13.253548" elapsed="0.006257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:13.253210" elapsed="0.006733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:13.233671" elapsed="0.026516">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:13.214876" elapsed="0.045513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:15.263217" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:15.262298" elapsed="0.000988"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:15.264052" elapsed="0.000468"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:15.263461" elapsed="0.001167"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:15.263419" elapsed="0.001260"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:15.287824" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:15.288189" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:15.288395" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:15.279224" elapsed="0.009221"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:15.289298" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:15.288643" elapsed="0.000774"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:15.294321" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:15.289757" elapsed="0.004670"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:15.289465" elapsed="0.005036"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:15.288601" elapsed="0.005971"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:15.294828" elapsed="0.000393"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:15.300804" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:15.295873" elapsed="0.005086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:15.295630" elapsed="0.005479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:15.295338" elapsed="0.005932">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:15.278281" elapsed="0.023217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:15.261350" elapsed="0.040378">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:17.304879" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:17.303974" elapsed="0.000984"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:17.305761" elapsed="0.000478"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:17.305202" elapsed="0.001121"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:17.305153" elapsed="0.001218"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:17.331692" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:17.332029" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:17.332297" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:17.321330" elapsed="0.011024"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:17.333304" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:17.332561" elapsed="0.000864"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:17.338333" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:17.333765" elapsed="0.004674"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:17.333476" elapsed="0.005059"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:17.332491" elapsed="0.006090"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:17.338832" elapsed="0.000396"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:17.344691" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:17.339893" elapsed="0.004960">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:17.339643" elapsed="0.005363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:17.339346" elapsed="0.005821">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:17.320386" elapsed="0.024995">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:17.302977" elapsed="0.042758">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:19.348614" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:19.347708" elapsed="0.000972"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:19.349401" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:19.348854" elapsed="0.001066"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:19.348811" elapsed="0.001158"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:19.373623" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:19.373913" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:19.374106" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:19.363945" elapsed="0.010246"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:19.374963" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:19.374352" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:19.379766" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:19.375411" elapsed="0.004459"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:19.375154" elapsed="0.004786"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:19.374314" elapsed="0.005669"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:19.380261" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:19.386245" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:19.381267" elapsed="0.005130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:19.380990" elapsed="0.005581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:19.380733" elapsed="0.005964">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:19.363069" elapsed="0.023974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:19.346777" elapsed="0.040500">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:21.389956" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:21.389065" elapsed="0.000955"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:21.390807" elapsed="0.000441"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:21.390229" elapsed="0.001099"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:21.390183" elapsed="0.001194"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:21.415000" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:21.415342" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:21.415560" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:21.405354" elapsed="0.010258"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:21.416391" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:21.415769" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:21.421269" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:21.416823" elapsed="0.004560"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:21.416572" elapsed="0.004907"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:21.415732" elapsed="0.005795"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:21.421795" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:21.427473" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:21.422822" elapsed="0.004806">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:21.422567" elapsed="0.005209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:21.422280" elapsed="0.005726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:21.404502" elapsed="0.023753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:21.388223" elapsed="0.040254">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:23.431340" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:23.430452" elapsed="0.000953"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:23.432152" elapsed="0.000448"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:23.431599" elapsed="0.001079"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:23.431554" elapsed="0.001176"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:23.457090" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:23.457454" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:23.457687" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:23.447184" elapsed="0.010556"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:23.458894" elapsed="0.000104"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:23.457910" elapsed="0.001156"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:23.463811" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:23.459410" elapsed="0.004506"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:23.459143" elapsed="0.004841"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:23.457868" elapsed="0.006159"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:23.464312" elapsed="0.000368"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:23.469991" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:23.465330" elapsed="0.004943">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:23.465049" elapsed="0.005402">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:23.464789" elapsed="0.005794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:23.446299" elapsed="0.024494">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:23.429482" elapsed="0.041507">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:25.473646" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:25.472785" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:25.474457" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:25.473880" elapsed="0.001068"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:25.473837" elapsed="0.001161"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:25.499639" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:25.499975" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:25.500251" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:25.489210" elapsed="0.011102"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:25.501338" elapsed="0.000094"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:25.500542" elapsed="0.000962"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:25.506839" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:25.501869" elapsed="0.005180"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:25.501559" elapsed="0.005639"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:25.500490" elapsed="0.006766"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:25.507565" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:25.514271" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:25.508678" elapsed="0.005778">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:25.508376" elapsed="0.006244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:25.508056" elapsed="0.006702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:25.488194" elapsed="0.026788">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:25.471872" elapsed="0.043388">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:27.517987" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:27.517102" elapsed="0.000955"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:27.518859" elapsed="0.000446"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:27.518312" elapsed="0.001091"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:27.518265" elapsed="0.001190"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:27.543313" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:27.543623" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:27.543971" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:27.533451" elapsed="0.010581"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:27.544879" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:27.544257" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:27.549730" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:27.545328" elapsed="0.004507"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:27.545044" elapsed="0.004859"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:27.544215" elapsed="0.005732"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:27.550231" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:27.555847" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:27.551229" elapsed="0.004768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:27.550954" elapsed="0.005275">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:27.550699" elapsed="0.005682">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:27.532570" elapsed="0.024019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:27.516260" elapsed="0.040523">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:29.559667" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:29.558725" elapsed="0.001010"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:29.560520" elapsed="0.000523"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:29.559911" elapsed="0.001289"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:29.559868" elapsed="0.001412"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:29.587022" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:29.587420" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:29.587667" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:29.576645" elapsed="0.011076"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:29.588606" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:29.587902" elapsed="0.000821"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:29.593751" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:29.589035" elapsed="0.004838"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:29.588775" elapsed="0.005166"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:29.587859" elapsed="0.006126"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:29.594273" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:29.599984" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:29.595278" elapsed="0.004908">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:29.594999" elapsed="0.005368">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:29.594742" elapsed="0.005758">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:29.575764" elapsed="0.024948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:29.557778" elapsed="0.043167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:31.603728" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:31.602839" elapsed="0.000953"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:31.604541" elapsed="0.000508"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:31.603960" elapsed="0.001199"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:31.603918" elapsed="0.001295"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:31.631073" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:31.631455" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:31.631652" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:31.620597" elapsed="0.011107"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:31.632506" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:31.631865" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:31.637421" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:31.632931" elapsed="0.004593"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:31.632668" elapsed="0.004926"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:31.631826" elapsed="0.005812"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:31.637889" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:31.643929" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:31.638884" elapsed="0.005194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:31.638644" elapsed="0.005618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:31.638383" elapsed="0.006026">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:31.619423" elapsed="0.025192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:31.601963" elapsed="0.042941">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:33.647475" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:33.646632" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:33.648457" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:33.647901" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:33.647858" elapsed="0.001130"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:33.673188" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:33.673494" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:33.673684" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:33.663309" elapsed="0.010426"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:33.674529" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:33.673891" elapsed="0.000751"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:33.679403" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:33.674935" elapsed="0.004572"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:33.674691" elapsed="0.004884"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:33.673853" elapsed="0.005765"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:33.679864" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:33.685366" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:33.680826" elapsed="0.004687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:33.680590" elapsed="0.005067">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:33.680340" elapsed="0.005437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:33.662448" elapsed="0.023618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:33.645789" elapsed="0.040529">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:35.689042" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:35.688181" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:35.689857" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:35.689331" elapsed="0.001067"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:35.689285" elapsed="0.001163"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:35.713655" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:35.713933" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:35.714181" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:35.704945" elapsed="0.009291"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:35.715002" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:35.714424" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:35.719823" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:35.715473" elapsed="0.004455"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:35.715201" elapsed="0.004796"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:35.714385" elapsed="0.005657"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:35.720347" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:35.725881" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:35.721341" elapsed="0.004689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:35.721043" elapsed="0.005166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:35.720788" elapsed="0.005674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:35.704067" elapsed="0.022609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:35.687308" elapsed="0.039568">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:37.729505" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:37.728620" elapsed="0.000949"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:37.730326" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:37.729739" elapsed="0.001074"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:37.729697" elapsed="0.001164"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:37.752485" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:37.752767" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:37.752957" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:37.744740" elapsed="0.008269"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:37.753861" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:37.753204" elapsed="0.000773"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:37.758702" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:37.754343" elapsed="0.004463"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:37.754026" elapsed="0.004849"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:37.753164" elapsed="0.005755"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:37.759199" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:37.766585" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:37.760191" elapsed="0.006642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:37.759918" elapsed="0.008175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:37.759664" elapsed="0.008696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:37.743867" elapsed="0.024703">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:37.727744" elapsed="0.041020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:39.771460" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:39.770597" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:39.772266" elapsed="0.000409"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:39.771689" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:39.771649" elapsed="0.001154"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:39.796337" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:39.796636" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:39.796839" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:39.786785" elapsed="0.010108"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:39.797755" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:39.797064" elapsed="0.000806"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:39.802810" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:39.798230" elapsed="0.004776"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:39.797919" elapsed="0.005159"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:39.797022" elapsed="0.006143"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:39.803470" elapsed="0.000338"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:39.809148" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:39.804507" elapsed="0.004812">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:39.804251" elapsed="0.005217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:39.803915" elapsed="0.005687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:39.785885" elapsed="0.023921">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:39.769719" elapsed="0.040279">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:41.812663" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:41.811799" elapsed="0.000930"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:41.813466" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:41.812895" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:41.812854" elapsed="0.001144"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:41.839753" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:41.840035" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:41.840441" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:41.830457" elapsed="0.010039"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:41.841299" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:41.840656" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:41.845960" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:41.841708" elapsed="0.004355"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:41.841462" elapsed="0.004720"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:41.840617" elapsed="0.005614"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:41.846477" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:41.851918" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:41.847458" elapsed="0.004607">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:41.847214" elapsed="0.005052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:41.846913" elapsed="0.005479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:41.829581" elapsed="0.023010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:41.810919" elapsed="0.041867">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:43.855493" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:43.854590" elapsed="0.000968"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:43.856372" elapsed="0.000447"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:43.855726" elapsed="0.001173"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:43.855685" elapsed="0.001264"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:43.881204" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:43.881502" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:43.881695" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:43.871344" elapsed="0.010401"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:43.882543" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:43.881907" elapsed="0.000749"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:43.887343" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:43.882951" elapsed="0.004499"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:43.882704" elapsed="0.004821"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:43.881869" elapsed="0.005714"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:43.887852" elapsed="0.000405"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:43.893915" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:43.888921" elapsed="0.005142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:43.888660" elapsed="0.005603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:43.888381" elapsed="0.006007">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:43.870474" elapsed="0.024115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:43.853717" elapsed="0.041068">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:45.897586" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:45.896707" elapsed="0.000945"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:45.898408" elapsed="0.000415"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:45.897827" elapsed="0.001078"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:45.897784" elapsed="0.001171"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:45.922663" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:45.922942" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:45.923183" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:45.913048" elapsed="0.010192"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:45.923986" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:45.923399" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:45.928807" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:45.924453" elapsed="0.004455"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:45.924197" elapsed="0.004780"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:45.923361" elapsed="0.005659"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:45.929315" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:45.934906" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:45.930318" elapsed="0.004738">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:45.930014" elapsed="0.005250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:45.929758" elapsed="0.005637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:45.912226" elapsed="0.023376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:45.895785" elapsed="0.040103">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:47.938572" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:47.937687" elapsed="0.000952"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:47.939381" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:47.938813" elapsed="0.001058"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:47.938769" elapsed="0.001153"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:47.964187" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:47.964479" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:47.964695" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:47.954619" elapsed="0.010130"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:47.965551" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:47.964911" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:47.970447" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:47.966002" elapsed="0.004549"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:47.965718" elapsed="0.004903"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:47.964873" elapsed="0.005792"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:47.970913" elapsed="0.000392"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:47.976545" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:47.971911" elapsed="0.004786">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:47.971669" elapsed="0.005175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:47.971414" elapsed="0.005551">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:47.953653" elapsed="0.023668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:47.936814" elapsed="0.040707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:49.980540" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:49.979593" elapsed="0.001013"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:49.981389" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:49.980778" elapsed="0.001110"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:49.980734" elapsed="0.001204"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:50.005467" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:50.005762" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:50.005959" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:49.996029" elapsed="0.009985"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:50.006867" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:50.006272" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:50.011689" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:50.007345" elapsed="0.004447"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:50.007033" elapsed="0.004825"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:50.006229" elapsed="0.005673"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:50.012209" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:50.018286" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:50.013207" elapsed="0.005231">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:50.012907" elapsed="0.005676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:50.012653" elapsed="0.006235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:49.995191" elapsed="0.023997">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:49.978709" elapsed="0.040700">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:52.022154" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:52.021288" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:52.022910" elapsed="0.000475"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:52.022395" elapsed="0.001068"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:52.022353" elapsed="0.001161"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:52.047867" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:52.048251" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:52.048459" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:52.038165" elapsed="0.010349"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:52.049467" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:52.048680" elapsed="0.000912"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:52.054595" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:52.049909" elapsed="0.004794"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:52.049643" elapsed="0.005129"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:52.048638" elapsed="0.006178"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:52.055165" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:52.061157" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:52.056274" elapsed="0.005147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:52.055904" elapsed="0.005672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:52.055639" elapsed="0.006106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:52.037269" elapsed="0.024698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:52.020378" elapsed="0.041857">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:54.065575" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:54.064443" elapsed="0.001198"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:54.066533" elapsed="0.000550"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:54.065888" elapsed="0.001313"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:54.065842" elapsed="0.001413"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:54.095626" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:54.095921" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:54.096208" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:54.086364" elapsed="0.009904"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:54.097101" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:54.096444" elapsed="0.000806"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:54.101969" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:54.097561" elapsed="0.004654"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:54.097301" elapsed="0.004987"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:54.096401" elapsed="0.005932"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:54.102590" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:54.108403" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:54.103687" elapsed="0.004870">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:54.103389" elapsed="0.005318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:54.103089" elapsed="0.005746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:54.085056" elapsed="0.024011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:54.063328" elapsed="0.045973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:56.111911" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:56.111072" elapsed="0.000927"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:56.112710" elapsed="0.000460"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:56.112198" elapsed="0.001052"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:56.112154" elapsed="0.001147"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:56.137404" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:56.137703" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:56.138019" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:56.128271" elapsed="0.009804"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:56.138868" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:56.138270" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:56.143751" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:56.139350" elapsed="0.004504"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:56.139057" elapsed="0.004867"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:56.138230" elapsed="0.005763"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:56.144278" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:56.150556" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:56.145287" elapsed="0.005478">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:56.145013" elapsed="0.005986">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:56.144734" elapsed="0.006504">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:56.127390" elapsed="0.024089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:56.110240" elapsed="0.041437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:46:58.153583" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:46:58.153018" elapsed="0.000608"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:46:58.154273" elapsed="0.000300"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:58.153759" elapsed="0.000866"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:58.153721" elapsed="0.000938"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:46:58.173856" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:46:58.174181" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:46:58.174376" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:46:58.165154" elapsed="0.009274"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:46:58.175059" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:46:58.174576" elapsed="0.000592"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:46:58.181083" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:46:58.175500" elapsed="0.005780"/>
</kw>
<status status="PASS" start="2026-09-05T23:46:58.175224" elapsed="0.006158"/>
</branch>
<status status="PASS" start="2026-09-05T23:46:58.174543" elapsed="0.006909"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:46:58.181841" elapsed="0.000592"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:46:58.189759" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:46:58.183449" elapsed="0.006473">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:46:58.183041" elapsed="0.007159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:46:58.182596" elapsed="0.007770">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:46:58.164287" elapsed="0.026316">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:46:58.152415" elapsed="0.038403">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:00.193578" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:00.192707" elapsed="0.000936"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:47:00.194560" elapsed="0.000516"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:00.193813" elapsed="0.001385"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:00.193770" elapsed="0.001493"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:00.223261" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:00.223610" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '613'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:00.223846" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:00.213347" elapsed="0.010585"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:00.224839" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:00.224111" elapsed="0.000881"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:00.229946" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:00.225363" elapsed="0.004694"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:00.225046" elapsed="0.005116"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:00.224069" elapsed="0.006160"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:00.230497" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:00.236609" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:00.231796" elapsed="0.004972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:47:00.231535" elapsed="0.005443">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:00.231096" elapsed="0.006059">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:00.212227" elapsed="0.025148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:00.191811" elapsed="0.045857">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-09-05T23:47:00.237863" level="FAIL">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-05T23:45:28.286802" elapsed="91.951395">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:00.238571" elapsed="0.000047"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:00.240415" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-05T23:47:00.559706" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:47:00.560224" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:47:00.560369" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:47:00.560500" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:00.239990" elapsed="0.320582"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:00.562082" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:00.561202" elapsed="0.001042"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:00.563174" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-05T23:47:00.919598" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:47:00.919964" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:47:00.920063" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:47:00.920200" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:00.562636" elapsed="0.357617"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:00.921153" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-05T23:47:00.988219" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:47:00.988530" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-05T23:47:00.988623" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:47:00.988705" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:00.920680" elapsed="0.068071"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:00.989411" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-05T23:47:01.041465" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:00.989174" elapsed="0.052476"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:01.054480" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:01.054577" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:01.054765" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:47:01.042044" elapsed="0.012771"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:01.063811" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 path_url=/rests/data/netconf-keystore:keystore 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0muo0arrpi4h31j4dzu6sxa0951.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:01.064266" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:47:01.064491" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:47:01.055201" elapsed="0.009343"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-05T23:47:00.239327" elapsed="0.825363"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-09-05T23:45:27.477218" elapsed="93.587569">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCjPAFP6C08F5rm6TMW/FcS50HD1XDwckC9G3C3HYUinaToFy7ztSlrxAsganjzZAtJvJBvuezsbDXt6A6febnpJ+u8wTlluqDqOPSQ1tR+YLGTeOAhh2AXDvLfT1+iUQwqDeytNiyErtFjv5wHvezylIqKedxrV2OSc97wIlgwhXON9FZYptzTV0WYoFRj/uWiad7bIjgEOzhDlZNtyf6fRCmu/g2CMLeyeYsuYLSBx5KmrtXUbuQ/rOAxYkDxqIFanjjg8/RW4sOMjJlPyN95v7YCfWdDVXJvC3zGy/7WWdLQPAEjb2PP0cZG0NCjGW7bnFGCFzgAb1pdvd2/A0JD","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</test>
<test id="s1-s1-t3" name="CallHome over SSH with correct global credentials" line="53">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:01.067695" level="INFO">Creating Session using : alias=session, url=http://10.30.170.144:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71d22e1dded0&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-09-05T23:47:01.067145" elapsed="0.000884"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:01.068567" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-05T23:47:01.092232" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:01.068361" elapsed="0.024027"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:01.092996" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:47:01.306359" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:01.092748" elapsed="0.213806"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:01.307259" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-05T23:47:01.355934" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:47:01.356197" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOc...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:01.306961" elapsed="0.049292"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:47:01.364925" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOc...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:47:01.356606" elapsed="0.008421"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-05T23:47:01.066533" elapsed="0.298654"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:47:01.406027" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml' -&gt; '/home/jenkins/configuration-files/ietf-netconf-server.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml</arg>
<arg>configuration-files/ietf-netconf-server.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:47:01.366173" elapsed="0.040076"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:47:01.418324" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml' -&gt; '/home/jenkins/configuration-files/ietf-keystore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml</arg>
<arg>configuration-files/ietf-keystore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:47:01.406625" elapsed="0.011863"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-05T23:47:01.365564" elapsed="0.053081"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:47:01.420222" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_global_credentials.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_global_credentials.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:47:01.420597" level="INFO">${template} = {
  "credentials": {
    "username": "{username}",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${template}</var>
<arg>${CREATE_GLOBAL_CREDENTIALS_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:47:01.419840" elapsed="0.000809"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:47:01.421500" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:47:01.420978" elapsed="0.000661"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:47:01.422458" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "root" ]
  }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:47:01.421962" elapsed="0.000548"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:01.450258" level="INFO">PUT Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '79', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
  "credentials": {
    "username": "root",
    "passwords": [ "root" ]
  }
}
 
 </msg>
<msg time="2026-09-05T23:47:01.450378" level="INFO">PUT Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 04-Sep-2026 23:47:01 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:01.450608" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${global_config_url}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:47:01.422782" elapsed="0.027883"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:01.451059" elapsed="0.004798"/>
</kw>
<arg>root</arg>
<arg>root</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-09-05T23:47:01.419146" elapsed="0.036928"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:47:01.472055" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:47:01.472406" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:47:01.471718" elapsed="0.000741"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:47:01.473494" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:47:01.472765" elapsed="0.000816"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:01.471182" elapsed="0.002507"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:01.464209" elapsed="0.009527"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-05T23:47:01.474144" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:01.473790" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:01.464160" elapsed="0.010133"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:47:01.475066" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:47:01.474557" elapsed="0.000594"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:47:01.475918" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:47:01.475445" elapsed="0.000529"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:47:01.476743" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:47:01.476290" elapsed="0.000505"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:47:01.477583" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nE...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:47:01.477103" elapsed="0.000535"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:01.493502" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"
        }
    }
}
 
 </msg>
<msg time="2026-09-05T23:47:01.493570" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:01.493749" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:47:01.477965" elapsed="0.015819"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:01.494019" elapsed="0.004412"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-05T23:47:01.456663" elapsed="0.041902"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:47:01.499271" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-05T23:47:01.815855" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:47:01.816291" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:47:01.816388" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:47:01.816475" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:47:01.498855" elapsed="0.317691"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:01.819906" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:01.819091" elapsed="0.000875"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:01.820675" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:01.820158" elapsed="0.000632"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:01.820083" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:01.847259" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:01.847590" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:01.847845" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:01.836568" elapsed="0.011367"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:01.848932" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:01.848204" elapsed="0.000857"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:01.854748" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:01.849475" elapsed="0.005382"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:01.849149" elapsed="0.005806"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:01.848150" elapsed="0.006855"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:01.855310" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:01.856447" elapsed="0.005056"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:01.856169" elapsed="0.005421"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:01.867217" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:01.862049" elapsed="0.005333">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:01.861766" elapsed="0.005874">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:01.855816" elapsed="0.012000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:01.835421" elapsed="0.032665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:01.818374" elapsed="0.049963">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:03.871011" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:03.870110" elapsed="0.000968"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:03.871830" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:03.871287" elapsed="0.000691"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:03.871241" elapsed="0.000789"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:03.897579" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:03.897885" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:03.898083" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:03.887275" elapsed="0.010888"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:03.898945" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:03.898329" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:03.904164" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:03.899383" elapsed="0.004888"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:03.899105" elapsed="0.005241"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:03.898291" elapsed="0.006110"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:03.904688" elapsed="0.000468"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:03.905837" elapsed="0.005033"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:03.905563" elapsed="0.005399"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:03.916426" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:03.911433" elapsed="0.005262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:03.911165" elapsed="0.005716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:03.905276" elapsed="0.011749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:03.886330" elapsed="0.030951">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:03.869291" elapsed="0.048204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:05.920183" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:05.919276" elapsed="0.000972"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:05.920969" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:05.920418" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:05.920375" elapsed="0.000790"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:05.945023" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:05.945341" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:05.945539" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:05.935082" elapsed="0.010510"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:05.946395" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:05.945749" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:05.951261" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:05.946853" elapsed="0.004511"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:05.946563" elapsed="0.004871"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:05.945712" elapsed="0.005767"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:05.951726" elapsed="0.000484"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:05.952851" elapsed="0.004765"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:05.952582" elapsed="0.005123"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:05.963814" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:05.958179" elapsed="0.005875">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:05.957898" elapsed="0.006406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:05.952322" elapsed="0.012165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:05.934243" elapsed="0.030549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:05.918405" elapsed="0.046708">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:07.967874" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:07.967012" elapsed="0.000927"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:07.968737" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:07.968105" elapsed="0.000790"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:07.968063" elapsed="0.000884"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:07.997716" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:07.998183" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:07.998535" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:07.985053" elapsed="0.013572"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:07.999930" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:07.998907" elapsed="0.001147"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:08.005737" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:08.000407" elapsed="0.005463"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:08.000106" elapsed="0.005837"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:07.998845" elapsed="0.007142"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:08.006279" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:08.007314" elapsed="0.004773"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:08.007027" elapsed="0.005175"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:08.017701" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:08.012617" elapsed="0.005310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:08.012368" elapsed="0.005722">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:08.006740" elapsed="0.011544">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:07.984093" elapsed="0.034461">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:07.966169" elapsed="0.052682">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:10.021711" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:10.020753" elapsed="0.001051"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:10.022586" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:10.021980" elapsed="0.000754"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:10.021936" elapsed="0.000882"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:10.049181" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:10.049567" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:10.049791" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:10.039258" elapsed="0.010588"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:10.050668" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:10.050013" elapsed="0.000792"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:10.055933" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:10.051111" elapsed="0.004927"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:10.050856" elapsed="0.005252"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:10.049973" elapsed="0.006211"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:10.056478" elapsed="0.000403"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:10.057538" elapsed="0.004906"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:10.057293" elapsed="0.005260"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:10.067708" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:10.063156" elapsed="0.004732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:10.062807" elapsed="0.005233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:10.056993" elapsed="0.011203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:10.038194" elapsed="0.030270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:10.019866" elapsed="0.048811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:12.071392" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:12.070424" elapsed="0.001033"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:12.072367" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:12.071736" elapsed="0.000753"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:12.071691" elapsed="0.000851"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:12.096115" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:12.096528" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:12.096770" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:12.086958" elapsed="0.009890"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:12.097662" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:12.097009" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:12.103711" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:12.098115" elapsed="0.005736"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:12.097849" elapsed="0.006076"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:12.096970" elapsed="0.006999"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:12.104258" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:12.105356" elapsed="0.004533"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:12.105016" elapsed="0.004957"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:12.115277" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:12.110536" elapsed="0.004900">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:12.110220" elapsed="0.005367">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:12.104723" elapsed="0.010988">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:12.086093" elapsed="0.029858">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:12.069565" elapsed="0.046714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:14.118823" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:14.117991" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:14.119648" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:14.119074" elapsed="0.000690"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:14.119032" elapsed="0.000780"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:14.145508" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:14.145793" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:14.146033" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:14.136327" elapsed="0.009758"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:14.146889" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:14.146276" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:14.151626" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:14.147332" elapsed="0.004465"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:14.147051" elapsed="0.004836"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:14.146237" elapsed="0.005694"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:14.152215" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:14.153307" elapsed="0.004420"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:14.152945" elapsed="0.004864"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:14.162778" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:14.158266" elapsed="0.004683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:14.157995" elapsed="0.005100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:14.152666" elapsed="0.010580">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:14.135445" elapsed="0.028087">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:14.117092" elapsed="0.046635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:16.166363" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:16.165495" elapsed="0.000931"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:16.167165" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:16.166598" elapsed="0.000686"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:16.166553" elapsed="0.000781"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:16.191594" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:16.191914" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:16.192149" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:16.181814" elapsed="0.010390"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:16.193227" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:16.192378" elapsed="0.000982"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:16.198382" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:16.193690" elapsed="0.004803"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:16.193415" elapsed="0.005150"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:16.192336" elapsed="0.006277"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:16.198905" elapsed="0.000395"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:16.199977" elapsed="0.005274"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:16.199689" elapsed="0.005649"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:16.210579" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:16.205767" elapsed="0.004964">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:16.205511" elapsed="0.005394">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:16.199415" elapsed="0.011736">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:16.180794" elapsed="0.030574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:16.164624" elapsed="0.046936">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:18.214241" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:18.213383" elapsed="0.000921"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:18.215008" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:18.214476" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:18.214430" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:18.238373" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:18.238665" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:18.238858" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:18.228925" elapsed="0.010016"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:18.239714" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:18.239100" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:18.244593" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:18.240190" elapsed="0.004506"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:18.239873" elapsed="0.004891"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:18.239061" elapsed="0.005747"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:18.245089" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:18.246084" elapsed="0.004499"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:18.245826" elapsed="0.004836"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:18.255638" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:18.251086" elapsed="0.004700">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:18.250821" elapsed="0.005228">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:18.245570" elapsed="0.010635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:18.228063" elapsed="0.028349">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:18.212522" elapsed="0.044087">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:20.259290" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:20.258427" elapsed="0.000927"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:20.260060" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:20.259526" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:20.259483" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:20.284051" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:20.284387" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:20.284611" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:20.274900" elapsed="0.009763"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:20.285482" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:20.284824" elapsed="0.000773"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:20.290341" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:20.285901" elapsed="0.004545"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:20.285650" elapsed="0.004866"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:20.284783" elapsed="0.005779"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:20.290815" elapsed="0.000403"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:20.291834" elapsed="0.004589"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:20.291589" elapsed="0.004918"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:20.301518" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:20.296911" elapsed="0.004846">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:20.296668" elapsed="0.005239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:20.291329" elapsed="0.010728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:20.274038" elapsed="0.028252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:20.257568" elapsed="0.044919">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:22.305268" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:22.304401" elapsed="0.000929"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:22.306035" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:22.305502" elapsed="0.000681"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:22.305459" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:22.329873" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:22.330238" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:22.330444" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:22.320207" elapsed="0.010330"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:22.331485" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:22.330763" elapsed="0.000853"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:22.336467" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:22.331982" elapsed="0.004593"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:22.331688" elapsed="0.004962"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:22.330714" elapsed="0.005981"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:22.336979" elapsed="0.000497"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:22.338181" elapsed="0.005031"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:22.337848" elapsed="0.005449"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:22.348283" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:22.343707" elapsed="0.004726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:22.343462" elapsed="0.005115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:22.337590" elapsed="0.011108">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:22.319290" elapsed="0.029609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:22.303503" elapsed="0.045640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:24.351722" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:24.350856" elapsed="0.000930"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:24.352533" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:24.351957" elapsed="0.000692"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:24.351914" elapsed="0.000783"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:24.377934" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:24.378293" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:24.378490" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:24.366647" elapsed="0.011897"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:24.379472" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:24.378705" elapsed="0.000885"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:24.384294" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:24.379895" elapsed="0.004510"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:24.379642" elapsed="0.004834"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:24.378665" elapsed="0.005856"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:24.384776" elapsed="0.000521"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:24.386003" elapsed="0.004547"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:24.385669" elapsed="0.004962"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:24.395618" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:24.391053" elapsed="0.004714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:24.390789" elapsed="0.005122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:24.385409" elapsed="0.010649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:24.365780" elapsed="0.030520">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:24.350015" elapsed="0.046482">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:26.399360" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:26.398272" elapsed="0.001154"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:26.400183" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:26.399594" elapsed="0.000705"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:26.399552" elapsed="0.000799"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:26.425583" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:26.425943" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:26.426214" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:26.414857" elapsed="0.011412"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:26.427162" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:26.426432" elapsed="0.000862"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:26.432550" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:26.427635" elapsed="0.005018"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:26.427346" elapsed="0.005375"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:26.426393" elapsed="0.006372"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:26.433040" elapsed="0.000394"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:26.434069" elapsed="0.004506"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:26.433804" elapsed="0.004853"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:26.443602" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:26.439081" elapsed="0.004667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:26.438817" elapsed="0.005074">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:26.433547" elapsed="0.010495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:26.413983" elapsed="0.030292">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:26.397428" elapsed="0.047047">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:28.447231" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:28.446346" elapsed="0.000952"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:28.448147" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:28.447573" elapsed="0.000693"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:28.447528" elapsed="0.000788"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:28.470617" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:28.470896" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:28.471146" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:28.462337" elapsed="0.008865"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:28.471978" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:28.471367" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:28.476774" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:28.472460" elapsed="0.004417"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:28.472194" elapsed="0.004750"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:28.471328" elapsed="0.005661"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:28.477294" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:28.478394" elapsed="0.004851"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:28.478067" elapsed="0.005261"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:28.488292" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:28.483736" elapsed="0.004704">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:28.483491" elapsed="0.005095">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:28.477737" elapsed="0.010972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:28.461441" elapsed="0.027469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:28.445435" elapsed="0.043816">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:30.491926" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:30.491087" elapsed="0.000902"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:30.492727" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:30.492210" elapsed="0.000633"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:30.492165" elapsed="0.000726"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:30.515807" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:30.516110" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:30.516351" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:30.506834" elapsed="0.009568"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:30.517194" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:30.516559" elapsed="0.000751"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:30.521973" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:30.517655" elapsed="0.004444"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:30.517359" elapsed="0.004837"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:30.516521" elapsed="0.005720"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:30.522488" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:30.523465" elapsed="0.004439"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:30.523226" elapsed="0.004757"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:30.532998" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:30.528451" elapsed="0.004750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:30.528197" elapsed="0.005155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:30.522921" elapsed="0.010550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:30.505959" elapsed="0.027808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:30.490245" elapsed="0.043723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:32.536612" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:32.535753" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:32.537404" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:32.536841" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:32.536799" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:32.561482" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:32.561764" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:32.561978" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:32.552038" elapsed="0.009992"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:32.562891" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:32.562254" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:32.567641" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:32.563364" elapsed="0.004378"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:32.563056" elapsed="0.004754"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:32.562204" elapsed="0.005651"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:32.568158" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:32.569143" elapsed="0.004753"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:32.568855" elapsed="0.005126"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:32.579228" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:32.574474" elapsed="0.004912">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:32.574213" elapsed="0.005332">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:32.568601" elapsed="0.011154">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:32.551208" elapsed="0.028764">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:32.534873" elapsed="0.045354">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:34.582941" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:34.581998" elapsed="0.001007"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:34.583731" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:34.583221" elapsed="0.000625"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:34.583177" elapsed="0.000717"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:34.607877" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:34.608244" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:34.608466" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:34.597982" elapsed="0.010541"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:34.609588" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:34.608707" elapsed="0.001004"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:34.615522" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:34.610053" elapsed="0.005582"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:34.609765" elapsed="0.005945"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:34.608662" elapsed="0.007096"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:34.616029" elapsed="0.000408"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:34.617092" elapsed="0.004969"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:34.616824" elapsed="0.005373"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:34.627585" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:34.622632" elapsed="0.005110">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:34.622373" elapsed="0.005621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:34.616551" elapsed="0.011634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:34.597081" elapsed="0.031333">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:34.581188" elapsed="0.047434">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:36.631569" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:36.630610" elapsed="0.001023"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:36.632388" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:36.631819" elapsed="0.000707"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:36.631774" elapsed="0.000806"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:36.657619" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:36.657910" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:36.658109" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:36.648587" elapsed="0.009628"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:36.658984" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:36.658381" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:36.663847" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:36.659467" elapsed="0.004481"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:36.659198" elapsed="0.004818"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:36.658341" elapsed="0.005718"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:36.664356" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:36.665341" elapsed="0.004509"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:36.665053" elapsed="0.004879"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:36.674883" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:36.670383" elapsed="0.004794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:36.670091" elapsed="0.005239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:36.664798" elapsed="0.010654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:36.647711" elapsed="0.027948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:36.629666" elapsed="0.046207">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:38.678860" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:38.677966" elapsed="0.000958"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:38.679702" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:38.679098" elapsed="0.000723"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:38.679051" elapsed="0.000829"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:38.703938" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:38.704290" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:38.704504" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:38.694353" elapsed="0.010204"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:38.705354" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:38.704714" elapsed="0.000755"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:38.710060" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:38.705770" elapsed="0.004448"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:38.705517" elapsed="0.004772"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:38.704676" elapsed="0.005657"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:38.710583" elapsed="0.000422"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:38.711671" elapsed="0.004436"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:38.711427" elapsed="0.004809"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:38.721188" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:38.716653" elapsed="0.004710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:38.716410" elapsed="0.005101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:38.711114" elapsed="0.010517">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:38.693476" elapsed="0.028356">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:38.677063" elapsed="0.044961">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:40.725288" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:40.724363" elapsed="0.000996"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:40.726055" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:40.725535" elapsed="0.000749"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:40.725490" elapsed="0.000851"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:40.751564" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:40.751904" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:40.752201" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:40.740703" elapsed="0.011561"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:40.753422" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:40.752476" elapsed="0.001078"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:40.759148" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:40.753909" elapsed="0.005371"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:40.753611" elapsed="0.005745"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:40.752423" elapsed="0.006980"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:40.759672" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:40.760739" elapsed="0.004963"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:40.760469" elapsed="0.005313"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:40.770749" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:40.766228" elapsed="0.004664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:40.765940" elapsed="0.005096">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:40.760193" elapsed="0.011017">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:40.739699" elapsed="0.031718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:40.723201" elapsed="0.048406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:42.775351" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:42.774018" elapsed="0.001428"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:42.776505" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:42.775691" elapsed="0.000986"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:42.775628" elapsed="0.001126"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:42.805420" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:42.805700" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:42.805832" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:42.797155" elapsed="0.008710"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:42.806423" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:42.805976" elapsed="0.000518"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:42.809427" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:42.806703" elapsed="0.002788"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:42.806525" elapsed="0.003009"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:42.805948" elapsed="0.003614"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:42.809721" elapsed="0.000215"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:42.810364" elapsed="0.002771"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:42.810203" elapsed="0.002999"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:42.816313" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:42.813458" elapsed="0.002950">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:42.813306" elapsed="0.003195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:42.810004" elapsed="0.006573">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:42.795899" elapsed="0.020815">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:42.772803" elapsed="0.044034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:44.819491" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:44.818633" elapsed="0.000922"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:44.820426" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:44.819845" elapsed="0.000700"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:44.819800" elapsed="0.000794"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:44.844920" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:44.845304" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:44.845611" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:44.835102" elapsed="0.010566"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:44.846487" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:44.845833" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:44.851294" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:44.846901" elapsed="0.004513"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:44.846650" elapsed="0.004835"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:44.845793" elapsed="0.005734"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:44.851772" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:44.852763" elapsed="0.004435"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:44.852520" elapsed="0.004780"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:44.862176" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:44.857703" elapsed="0.004645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:44.857462" elapsed="0.005035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:44.852262" elapsed="0.010355">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:44.834271" elapsed="0.028549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:44.817759" elapsed="0.045463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:46.865874" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:46.864939" elapsed="0.000999"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:46.866691" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:46.866105" elapsed="0.000702"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:46.866063" elapsed="0.000794"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:46.891344" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:46.891622" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:46.891815" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:46.880698" elapsed="0.011167"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:46.892674" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:46.892020" elapsed="0.000777"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:46.897861" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:46.893106" elapsed="0.004858"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:46.892848" elapsed="0.005186"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:46.891982" elapsed="0.006096"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:46.898386" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:46.899365" elapsed="0.004430"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:46.899075" elapsed="0.004800"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:46.908877" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:46.904331" elapsed="0.004693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:46.904034" elapsed="0.005169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:46.898825" elapsed="0.010525">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:46.879827" elapsed="0.029797">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:46.864052" elapsed="0.045765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:48.912601" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:48.911721" elapsed="0.000946"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:48.913432" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:48.912852" elapsed="0.000712"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:48.912798" elapsed="0.000816"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:48.940417" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:48.940701" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:48.940909" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:48.927795" elapsed="0.013167"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:48.941806" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:48.941154" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:48.946735" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:48.942278" elapsed="0.004558"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:48.941972" elapsed="0.004934"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:48.941082" elapsed="0.005868"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:48.947237" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:48.948237" elapsed="0.004706"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:48.947962" elapsed="0.005061"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:48.958303" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:48.953498" elapsed="0.004971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:48.953218" elapsed="0.005425">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:48.947708" elapsed="0.011172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:48.926912" elapsed="0.032184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:48.910802" elapsed="0.048564">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:50.962051" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:50.961207" elapsed="0.000907"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:50.962943" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:50.962346" elapsed="0.000719"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:50.962300" elapsed="0.000847"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:50.988875" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:50.989210" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:50.989459" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:50.980199" elapsed="0.009318"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:50.990390" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:50.989726" elapsed="0.000781"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:50.995167" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:50.990808" elapsed="0.004494"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:50.990557" elapsed="0.004817"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:50.989683" elapsed="0.005736"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:50.995669" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:50.996667" elapsed="0.004535"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:50.996424" elapsed="0.004889"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:51.006336" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:51.001725" elapsed="0.004760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:51.001481" elapsed="0.005233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:50.996113" elapsed="0.010725">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:50.979328" elapsed="0.027710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:50.960323" elapsed="0.046959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:53.010314" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:53.009343" elapsed="0.001049"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:53.011162" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:53.010578" elapsed="0.000731"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:53.010523" elapsed="0.000837"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:53.035704" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:53.036111" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:53.036486" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:53.025729" elapsed="0.010842"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:53.037783" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:53.036814" elapsed="0.001147"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:53.045009" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:53.038546" elapsed="0.006669"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:53.038050" elapsed="0.007298"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:53.036753" elapsed="0.008666"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:53.045800" elapsed="0.000575"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:53.047395" elapsed="0.046698"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:53.046957" elapsed="0.047234"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:53.098464" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:53.094551" elapsed="0.004094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:53.094347" elapsed="0.004400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:53.046538" elapsed="0.052293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:53.024836" elapsed="0.074137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:53.008340" elapsed="0.090761">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:55.101830" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:55.100966" elapsed="0.000928"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:55.102627" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:55.102063" elapsed="0.000680"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:55.102021" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:55.126409" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:55.126699" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:55.126893" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:55.116708" elapsed="0.010237"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:55.127754" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:55.127104" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:55.132569" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:55.128198" elapsed="0.004476"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:55.127918" elapsed="0.004827"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:55.127065" elapsed="0.005724"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:55.133036" elapsed="0.000484"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:55.134154" elapsed="0.004552"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:55.133883" elapsed="0.004906"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:55.144196" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:55.139227" elapsed="0.005148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:55.138951" elapsed="0.005572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:55.133630" elapsed="0.011016">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:55.115834" elapsed="0.029012">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:55.100098" elapsed="0.044941">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:57.147958" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:57.147041" elapsed="0.000986"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:57.148814" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:57.148243" elapsed="0.000698"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:57.148196" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:57.174655" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:57.174962" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:57.175219" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:57.164165" elapsed="0.011113"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:57.176343" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:57.175494" elapsed="0.000971"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:57.181155" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:57.176772" elapsed="0.004490"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:57.176516" elapsed="0.004847"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:57.175439" elapsed="0.005970"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:57.181663" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:57.182679" elapsed="0.004506"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:57.182432" elapsed="0.004835"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:57.192342" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:57.187699" elapsed="0.004797">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:57.187454" elapsed="0.005190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:57.182111" elapsed="0.010658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:57.163290" elapsed="0.029684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:57.146065" elapsed="0.047135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:47:59.195978" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:47:59.195108" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:47:59.196781" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:59.196245" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:59.196200" elapsed="0.000766"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:47:59.223852" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:47:59.224300" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:47:59.224545" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:47:59.211699" elapsed="0.012899"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:47:59.225405" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:47:59.224760" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:47:59.230258" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:47:59.225820" elapsed="0.004562"/>
</kw>
<status status="PASS" start="2026-09-05T23:47:59.225569" elapsed="0.004881"/>
</branch>
<status status="PASS" start="2026-09-05T23:47:59.224719" elapsed="0.005774"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:47:59.230742" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:47:59.231734" elapsed="0.004466"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:47:59.231494" elapsed="0.004787"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:47:59.241197" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:47:59.236704" elapsed="0.004664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:47:59.236462" elapsed="0.005055">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:47:59.231215" elapsed="0.010423">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:47:59.210813" elapsed="0.031027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:47:59.194219" elapsed="0.047810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:01.244717" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:01.243847" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:01.245636" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:01.245048" elapsed="0.000705"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:01.245002" elapsed="0.000802"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:01.269462" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:01.269754" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:01.269952" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:01.259775" elapsed="0.010228"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:01.270800" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:01.270192" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:01.275930" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:01.271234" elapsed="0.004799"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:01.270958" elapsed="0.005147"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:01.270151" elapsed="0.006032"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:01.276455" elapsed="0.000338"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:01.277452" elapsed="0.004541"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:01.277188" elapsed="0.004886"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:01.287253" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:01.282544" elapsed="0.004879">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:01.282271" elapsed="0.005298">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:01.276899" elapsed="0.010791">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:01.258897" elapsed="0.029031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:01.242952" elapsed="0.045338">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:03.290979" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:03.290147" elapsed="0.000895"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:03.291782" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:03.291245" elapsed="0.000653"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:03.291201" elapsed="0.000746"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:03.315598" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:03.315744" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:03.315849" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:03.306046" elapsed="0.009826"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:03.316242" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:03.315953" elapsed="0.000341"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:03.318389" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:03.316447" elapsed="0.001989"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:03.316317" elapsed="0.002155"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:03.315929" elapsed="0.002584"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:03.318645" elapsed="0.000157"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:03.319082" elapsed="0.001964"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:03.318971" elapsed="0.002112"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:03.323319" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:03.321285" elapsed="0.002120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:03.321173" elapsed="0.002302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:03.318853" elapsed="0.004677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:03.305203" elapsed="0.018480">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:03.289289" elapsed="0.034484">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:05.326511" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:05.325570" elapsed="0.001013"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:05.327351" elapsed="0.000095"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:05.326781" elapsed="0.000740"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:05.326732" elapsed="0.000838"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:05.353109" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:05.353468" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:05.353687" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:05.342546" elapsed="0.011196"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:05.354565" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:05.353905" elapsed="0.000776"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:05.359648" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:05.355007" elapsed="0.004748"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:05.354732" elapsed="0.005093"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:05.353865" elapsed="0.006005"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:05.360152" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:05.361197" elapsed="0.004656"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:05.360915" elapsed="0.005019"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:05.371054" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:05.366431" elapsed="0.004808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:05.366154" elapsed="0.005256">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:05.360636" elapsed="0.010990">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:05.341643" elapsed="0.030195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:05.324692" elapsed="0.047346">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:07.374734" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:07.373866" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:07.375560" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:07.374975" elapsed="0.000701"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:07.374930" elapsed="0.000797"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:07.399317" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:07.399621" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:07.399814" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:07.389691" elapsed="0.010174"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:07.400670" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:07.400023" elapsed="0.000760"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:07.405765" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:07.401083" elapsed="0.004787"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:07.400832" elapsed="0.005106"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:07.399984" elapsed="0.005998"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:07.406260" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:07.407259" elapsed="0.004531"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:07.406988" elapsed="0.004883"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:07.416889" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:07.412304" elapsed="0.004738">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:07.412033" elapsed="0.005281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:07.406733" elapsed="0.010731">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:07.388815" elapsed="0.028856">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:07.372981" elapsed="0.044885">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:09.420678" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:09.419789" elapsed="0.000957"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:09.421589" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:09.420926" elapsed="0.000784"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:09.420880" elapsed="0.000881"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:09.444325" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:09.444654" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:09.444857" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:09.436531" elapsed="0.008378"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:09.445746" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:09.445077" elapsed="0.000785"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:09.450649" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:09.446206" elapsed="0.004545"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:09.445915" elapsed="0.004903"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:09.445036" elapsed="0.005825"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:09.451107" elapsed="0.000396"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:09.452116" elapsed="0.004462"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:09.451868" elapsed="0.004791"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:09.461715" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:09.457059" elapsed="0.004934">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:09.456820" elapsed="0.005360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:09.451612" elapsed="0.010698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:09.435625" elapsed="0.026956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:09.418849" elapsed="0.043983">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:11.464791" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:11.464235" elapsed="0.000596"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:11.465270" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:11.464945" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:11.464916" elapsed="0.000448"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:11.482203" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:11.482373" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:11.482496" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:11.473972" elapsed="0.008549"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:11.482885" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:11.482602" elapsed="0.000334"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:11.485016" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:11.483072" elapsed="0.001990"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:11.482958" elapsed="0.002135"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:11.482582" elapsed="0.002544"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:11.485242" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:11.485774" elapsed="0.001999"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:11.485660" elapsed="0.002150"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:11.490011" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:11.487989" elapsed="0.002104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:11.487882" elapsed="0.002306">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:11.485531" elapsed="0.004719">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:11.473494" elapsed="0.016852">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:11.463607" elapsed="0.026843">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:13.494501" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:13.493044" elapsed="0.001551"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:13.495762" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:13.494874" elapsed="0.001079"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:13.494795" elapsed="0.001235"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:13.523955" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:13.524296" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:13.524532" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:13.514235" elapsed="0.010352"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:13.525586" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:13.524778" elapsed="0.000923"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:13.530743" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:13.526047" elapsed="0.004795"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:13.525769" elapsed="0.005164"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:13.524730" elapsed="0.006253"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:13.531266" elapsed="0.000387"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:13.532338" elapsed="0.003652"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:13.532057" elapsed="0.003989"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:13.539508" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:13.536365" elapsed="0.003278">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:13.536189" elapsed="0.003574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:13.531773" elapsed="0.008086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:13.513303" elapsed="0.026731">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:13.491689" elapsed="0.048524">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:15.541785" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:15.541342" elapsed="0.000477"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:15.542181" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:15.541913" elapsed="0.000323"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:15.541889" elapsed="0.000370"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:15.556810" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:15.557017" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:15.557107" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:15.548483" elapsed="0.008667"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:15.557509" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:15.557223" elapsed="0.000339"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:15.559611" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:15.557699" elapsed="0.001958"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:15.557584" elapsed="0.002105"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:15.557205" elapsed="0.002504"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:15.559822" elapsed="0.000158"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:15.560287" elapsed="0.002004"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:15.560173" elapsed="0.002155"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:15.564585" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:15.562526" elapsed="0.002133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:15.562404" elapsed="0.002326">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:15.560033" elapsed="0.004753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:15.548082" elapsed="0.016801">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:15.540845" elapsed="0.024127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:17.567562" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:17.566703" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:17.568473" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:17.567899" elapsed="0.000694"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:17.567854" elapsed="0.000790"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:17.591095" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:17.591420" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:17.591668" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:17.583021" elapsed="0.008699"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:17.592523" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:17.591878" elapsed="0.000761"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:17.597325" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:17.592939" elapsed="0.004487"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:17.592689" elapsed="0.004830"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:17.591840" elapsed="0.005724"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:17.597817" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:17.598813" elapsed="0.004523"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:17.598571" elapsed="0.004848"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:17.608463" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:17.603851" elapsed="0.004762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:17.603603" elapsed="0.005157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:17.598295" elapsed="0.010590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:17.582168" elapsed="0.026919">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:17.565837" elapsed="0.043557">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:19.612282" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:19.611300" elapsed="0.001217"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:19.613292" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:19.612698" elapsed="0.000719"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:19.612652" elapsed="0.000841"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:19.638195" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:19.638574" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:19.638799" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:19.629095" elapsed="0.009761"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:19.639814" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:19.639042" elapsed="0.000898"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:19.645706" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:19.640308" elapsed="0.005513"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:19.639996" elapsed="0.005919"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:19.638998" elapsed="0.006981"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:19.646293" elapsed="0.000395"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:19.647383" elapsed="0.004981"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:19.647082" elapsed="0.005395"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:19.657929" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:19.652916" elapsed="0.005169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:19.652654" elapsed="0.005628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:19.646806" elapsed="0.011610">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:19.628089" elapsed="0.030687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:19.610369" elapsed="0.048628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:21.661626" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:21.660759" elapsed="0.000931"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:21.662405" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:21.661861" elapsed="0.000699"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:21.661816" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:21.685516" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:21.685820" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:21.686027" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:21.676875" elapsed="0.009205"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:21.687021" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:21.686278" elapsed="0.000918"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:21.692221" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:21.687546" elapsed="0.004810"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:21.687248" elapsed="0.005181"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:21.686236" elapsed="0.006274"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:21.692794" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:21.693829" elapsed="0.004778"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:21.693575" elapsed="0.005125"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:21.703956" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:21.699177" elapsed="0.004993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:21.698874" elapsed="0.005449">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:21.693289" elapsed="0.011324">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:21.675955" elapsed="0.028896">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:21.659876" elapsed="0.045173">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:23.707830" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:23.706949" elapsed="0.000946"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:23.708648" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:23.708069" elapsed="0.000696"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:23.708025" elapsed="0.000789"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:23.733340" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:23.733658" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:23.733877" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:23.723614" elapsed="0.010315"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:23.734779" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:23.734090" elapsed="0.000831"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:23.739758" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:23.735278" elapsed="0.004583"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:23.734972" elapsed="0.004957"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:23.734051" elapsed="0.005921"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:23.740254" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:23.741262" elapsed="0.004791"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:23.740984" elapsed="0.005192"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:23.751235" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:23.746655" elapsed="0.004731">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:23.746382" elapsed="0.005260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:23.740726" elapsed="0.011043">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:23.722719" elapsed="0.029257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:23.706015" elapsed="0.046189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:25.754864" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:25.753995" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:25.755661" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:25.755094" elapsed="0.000682"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:25.755052" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:25.778255" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:25.778566" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:25.778762" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:25.769738" elapsed="0.009077"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:25.779730" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:25.778973" elapsed="0.000927"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:25.786086" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:25.780444" elapsed="0.005777"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:25.780018" elapsed="0.006274"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:25.778934" elapsed="0.007403"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:25.786835" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:25.787842" elapsed="0.004534"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:25.787595" elapsed="0.004867"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:25.797426" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:25.792894" elapsed="0.004792">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:25.792652" elapsed="0.005183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:25.787315" elapsed="0.010640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:25.768868" elapsed="0.029318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:25.753116" elapsed="0.045264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:27.801504" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:27.800403" elapsed="0.001182"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:27.802447" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:27.801763" elapsed="0.000863"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:27.801718" elapsed="0.000968"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:27.827327" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:27.827634" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:27.827832" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:27.817314" elapsed="0.010571"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:27.828705" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:27.828047" elapsed="0.000775"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:27.833608" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:27.829161" elapsed="0.004551"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:27.828875" elapsed="0.004908"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:27.828009" elapsed="0.005820"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:27.834081" elapsed="0.000510"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:27.835248" elapsed="0.004517"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:27.834967" elapsed="0.004880"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:27.845649" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:27.840293" elapsed="0.005551">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:27.840013" elapsed="0.006012">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:27.834705" elapsed="0.011491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:27.816434" elapsed="0.030007">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:27.799361" elapsed="0.047312">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:29.849442" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:29.848601" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:29.850242" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:29.849697" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:29.849653" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:29.875442" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:29.875752" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:29.875967" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:29.867005" elapsed="0.009015"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:29.876929" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:29.876217" elapsed="0.000828"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:29.881807" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:29.877382" elapsed="0.004527"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:29.877096" elapsed="0.004882"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:29.876177" elapsed="0.005845"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:29.882301" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:29.883310" elapsed="0.004555"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:29.883030" elapsed="0.004917"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:29.893082" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:29.888387" elapsed="0.004888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:29.888110" elapsed="0.005315">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:29.882769" elapsed="0.010798">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:29.866145" elapsed="0.027630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:29.847693" elapsed="0.046276">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:31.896954" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:31.896102" elapsed="0.000913"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:31.898083" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:31.897443" elapsed="0.000792"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:31.897398" elapsed="0.000886"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:31.921990" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:31.922475" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:31.922770" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:31.913195" elapsed="0.009632"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:31.923729" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:31.923013" elapsed="0.000845"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:31.930665" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:31.924560" elapsed="0.006210"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:31.923921" elapsed="0.006918"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:31.922970" elapsed="0.007913"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:31.931162" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:31.932160" elapsed="0.005225"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:48:31.931889" elapsed="0.005629"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:31.942598" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:31.938047" elapsed="0.004698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-05T23:48:31.937732" elapsed="0.005162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:31.931634" elapsed="0.011381">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:31.912315" elapsed="0.030936">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:31.895213" elapsed="0.048230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-09-05T23:48:31.943642" level="FAIL">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>CONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-05T23:47:01.817021" elapsed="90.126898">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-05T23:48:31.944300" elapsed="0.000045"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:31.946040" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-05T23:48:32.254762" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:48:32.255113" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:48:32.255258" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:48:32.255345" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:31.945691" elapsed="0.309701"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:32.256512" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:32.255823" elapsed="0.000780"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:32.257296" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-05T23:48:32.602632" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:48:32.602968" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:48:32.603055" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:48:32.603178" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:32.256891" elapsed="0.346336"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:32.604031" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-05T23:48:32.677232" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:48:32.677457" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-05T23:48:32.677584" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:48:32.677667" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:32.603642" elapsed="0.074068"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:32.678244" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-05T23:48:32.729289" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:32.678015" elapsed="0.051416"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:32.743394" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:32.743484" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:32.743690" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:48:32.729868" elapsed="0.013872"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:32.752766" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 path_url=/rests/data/netconf-keystore:keystore 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01e79zw98ui7w28m4nz4aq6p7x2.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:32.753025" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:48:32.753299" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:48:32.744209" elapsed="0.009147"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-05T23:48:31.944951" elapsed="0.808568"/>
</kw>
<doc>CallHome SSH device registered with global credentials should result to successful mount.</doc>
<status status="FAIL" start="2026-09-05T23:47:01.065352" elapsed="91.688267">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JAwBvv27zdMYDD0LtFPIpsYyaJaunDx3RTiZ3XHPDWNXXHDBAabNXY7qf+nEfCsJIisu/XRGpce8tnFvHv0vA7Hq/8a4Lq9NjnTaaaNgMqCWuwMBbu1VKvrLfx7Sjh23TM8vMm+68ReY4Vyu+UZCz/lSzKnqqAYdEOWKEPOcb8H+W4SIVE4T/dPHQ3plTg/I7S4i4rPtJAfmztH68SGEHHdIKKHUpJX8lAi/VOY27zlGr5/JpC1Tl10DbPTZAGzzoguO7I9SgOmbxipcz9fS7veAVbfNB3cbm5JNGzP59am5Eax6PmmKxldFs1249xYzopsBG+w0miLAWFbEx3VD"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</test>
<test id="s1-s1-t4" name="CallHome over SSH with incorrect global credentials" line="71">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:32.757073" level="INFO">Creating Session using : alias=session, url=http://10.30.170.144:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71d22e040c50&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-09-05T23:48:32.756549" elapsed="0.001121"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:32.758203" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-05T23:48:32.781221" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:32.757971" elapsed="0.023369"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:32.781834" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:48:33.055557" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:32.781639" elapsed="0.274111"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:33.056897" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-05T23:48:33.108928" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:48:33.109189" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:33.056174" elapsed="0.053072"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:48:33.117803" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:48:33.109626" elapsed="0.008275"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-05T23:48:32.755912" elapsed="0.362117"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:48:33.157599" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml' -&gt; '/home/jenkins/configuration-files/ietf-netconf-server.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml</arg>
<arg>configuration-files/ietf-netconf-server.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:48:33.119227" elapsed="0.038525"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:48:33.168153" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml' -&gt; '/home/jenkins/configuration-files/ietf-keystore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml</arg>
<arg>configuration-files/ietf-keystore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:48:33.158246" elapsed="0.010046"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-05T23:48:33.118411" elapsed="0.050014"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:48:33.169890" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_global_credentials.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_global_credentials.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:48:33.170199" level="INFO">${template} = {
  "credentials": {
    "username": "{username}",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${template}</var>
<arg>${CREATE_GLOBAL_CREDENTIALS_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:48:33.169579" elapsed="0.000674"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:48:33.171042" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:48:33.170572" elapsed="0.000521"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:48:33.171882" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "incorrect" ]
  }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:48:33.171411" elapsed="0.000521"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:33.188827" level="INFO">PUT Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '84', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
  "credentials": {
    "username": "root",
    "passwords": [ "incorrect" ]
  }
}
 
 </msg>
<msg time="2026-09-05T23:48:33.188928" level="INFO">PUT Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=204, reason=No Content 
 headers={'Set-Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 04-Sep-2026 23:48:33 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:33.189158" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${global_config_url}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:48:33.172227" elapsed="0.016985"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:33.189632" elapsed="0.004464"/>
</kw>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-09-05T23:48:33.168838" elapsed="0.025420"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:48:33.210966" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:48:33.211350" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:48:33.210610" elapsed="0.000793"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:48:33.212564" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:48:33.211769" elapsed="0.000880"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:33.209921" elapsed="0.002839"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:33.201920" elapsed="0.010888"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-05T23:48:33.213200" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:33.212869" elapsed="0.000429"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:33.201877" elapsed="0.011464"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:48:33.214151" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:48:33.213631" elapsed="0.000575"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:48:33.214976" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:48:33.214520" elapsed="0.000510"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:48:33.215697" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:48:33.215358" elapsed="0.000371"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:48:33.216214" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:48:33.215903" elapsed="0.000345"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:33.229052" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"
        }
    }
}
 
 </msg>
<msg time="2026-09-05T23:48:33.229151" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:33.229264" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:48:33.216417" elapsed="0.012879"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:48:33.229510" elapsed="0.002744"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-05T23:48:33.194775" elapsed="0.037559"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:48:33.232771" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-05T23:48:33.539475" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:48:33.539839" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:48:33.539938" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:48:33.540020" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:48:33.232542" elapsed="0.307522"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:33.543644" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:33.542802" elapsed="0.000896"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:33.544405" elapsed="0.000438"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:33.543861" elapsed="0.001060"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:33.543814" elapsed="0.001160"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:33.568432" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:33.568752" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:33.568944" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:33.559169" elapsed="0.009824"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:33.569815" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:33.569208" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:33.575102" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:33.570255" elapsed="0.004995"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:33.569975" elapsed="0.005344"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:33.569111" elapsed="0.006251"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:33.575633" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:33.581325" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:33.576692" elapsed="0.004837">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:33.576419" elapsed="0.005263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:33.576146" elapsed="0.005660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:33.558273" elapsed="0.023741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:33.541914" elapsed="0.040395">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:35.585073" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:35.584211" elapsed="0.000958"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:35.585895" elapsed="0.000448"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:35.585347" elapsed="0.001073"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:35.585303" elapsed="0.001168"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:35.608764" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:35.609053" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:35.609293" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:35.600385" elapsed="0.008960"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:35.610115" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:35.609525" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:35.614955" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:35.610587" elapsed="0.004470"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:35.610307" elapsed="0.004849"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:35.609465" elapsed="0.005739"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:35.615454" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:35.621197" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:35.616464" elapsed="0.004885">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:35.616219" elapsed="0.005300">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:35.615927" elapsed="0.005723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:35.599527" elapsed="0.022420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:35.583278" elapsed="0.038901">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:37.624999" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:37.624113" elapsed="0.000951"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:37.625821" elapsed="0.000445"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:37.625272" elapsed="0.001073"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:37.625225" elapsed="0.001174"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:37.650248" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:37.650611" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:37.650867" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:37.641518" elapsed="0.009406"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:37.651749" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:37.651086" elapsed="0.000779"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:37.656790" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:37.652277" elapsed="0.004618"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:37.651923" elapsed="0.005041"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:37.651047" elapsed="0.005963"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:37.657361" elapsed="0.000377"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:37.663056" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:37.658431" elapsed="0.004810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:37.658181" elapsed="0.005206">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:37.657848" elapsed="0.005776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:37.640624" elapsed="0.023213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:37.623224" elapsed="0.040804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:39.666663" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:39.665795" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:39.667443" elapsed="0.000432"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:39.666897" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:39.666853" elapsed="0.001149"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:39.691220" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:39.691529" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:39.691743" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:39.681916" elapsed="0.009881"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:39.692595" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:39.691955" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:39.697344" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:39.693010" elapsed="0.004438"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:39.692758" elapsed="0.004781"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:39.691916" elapsed="0.005671"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:39.697839" elapsed="0.000422"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:39.703869" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:39.698931" elapsed="0.005086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:39.698665" elapsed="0.005623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:39.698374" elapsed="0.006046">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:39.681042" elapsed="0.023608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:39.664906" elapsed="0.039940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:41.707505" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:41.706654" elapsed="0.000940"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:41.708305" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:41.707763" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:41.707721" elapsed="0.001147"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:41.732357" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:41.732664" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:41.732879" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:41.722789" elapsed="0.010156"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:41.733953" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:41.733182" elapsed="0.000894"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:41.738793" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:41.734422" elapsed="0.004471"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:41.734159" elapsed="0.004801"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:41.733095" elapsed="0.005908"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:41.739285" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:41.744844" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:41.740290" elapsed="0.004810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:41.740017" elapsed="0.005266">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:41.739758" elapsed="0.005650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:41.721919" elapsed="0.023716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:41.705787" elapsed="0.040045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:43.748419" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:43.747569" elapsed="0.000913"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:43.749207" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:43.748670" elapsed="0.001032"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:43.748628" elapsed="0.001125"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:43.774189" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:43.774473" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:43.774736" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:43.764251" elapsed="0.010539"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:43.775658" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:43.774966" elapsed="0.000808"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:43.780565" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:43.776078" elapsed="0.004589"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:43.775825" elapsed="0.004923"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:43.774924" elapsed="0.005869"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:43.781170" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:43.787047" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:43.782260" elapsed="0.004964">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:43.781895" elapsed="0.005473">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:43.781637" elapsed="0.005854">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:43.763294" elapsed="0.024426">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:43.746726" elapsed="0.041192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:45.790758" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:45.789818" elapsed="0.001008"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:45.791696" elapsed="0.000522"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:45.791008" elapsed="0.001302"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:45.790963" elapsed="0.001407"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:45.819008" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:45.819364" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:45.819587" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:45.808410" elapsed="0.011231"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:45.820475" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:45.819807" elapsed="0.000810"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:45.825621" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:45.821050" elapsed="0.004675"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:45.820757" elapsed="0.005040"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:45.819768" elapsed="0.006073"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:45.826096" elapsed="0.000454"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:45.832680" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:45.827252" elapsed="0.005578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:45.826929" elapsed="0.006051">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:45.826668" elapsed="0.006498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:45.807400" elapsed="0.025987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:45.788881" elapsed="0.044732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:47.836470" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:47.835456" elapsed="0.001109"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:47.837382" elapsed="0.000465"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:47.836753" elapsed="0.001175"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:47.836702" elapsed="0.001277"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:47.862682" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:47.862984" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:47.863416" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:47.852905" elapsed="0.010569"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:47.864311" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:47.863671" elapsed="0.000756"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:47.869348" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:47.864752" elapsed="0.004699"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:47.864476" elapsed="0.005068"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:47.863630" elapsed="0.005960"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:47.869844" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:47.876104" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:47.870867" elapsed="0.005493">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:47.870619" elapsed="0.005945">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:47.870331" elapsed="0.006367">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:47.852016" elapsed="0.024892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:47.834552" elapsed="0.042552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:49.879860" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:49.878910" elapsed="0.001014"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:49.880674" elapsed="0.000497"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:49.880096" elapsed="0.001159"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:49.880055" elapsed="0.001251"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:49.908305" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:49.908733" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:49.908982" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:49.897955" elapsed="0.011083"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:49.910022" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:49.909282" elapsed="0.000898"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:49.915217" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:49.910500" elapsed="0.004824"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:49.910233" elapsed="0.005162"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:49.909234" elapsed="0.006205"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:49.915721" elapsed="0.000387"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:49.921757" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:49.916829" elapsed="0.005084">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:49.916569" elapsed="0.005537">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:49.916277" elapsed="0.006004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:49.896882" elapsed="0.025612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:49.878027" elapsed="0.044695">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:51.925674" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:51.924759" elapsed="0.000983"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:51.926510" elapsed="0.000566"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:51.925921" elapsed="0.001272"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:51.925877" elapsed="0.001374"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:51.950792" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:51.951080" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:51.951321" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:51.941707" elapsed="0.009682"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:51.952285" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:51.951597" elapsed="0.000805"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:51.957472" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:51.952730" elapsed="0.004866"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:51.952452" elapsed="0.005215"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:51.951550" elapsed="0.006160"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:51.957959" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:51.964088" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:51.958954" elapsed="0.005314">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:51.958706" elapsed="0.005714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:51.958432" elapsed="0.006135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:51.940732" elapsed="0.024042">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:51.923786" elapsed="0.041178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:53.967856" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:53.966950" elapsed="0.000970"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:53.968685" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:53.968097" elapsed="0.001119"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:53.968052" elapsed="0.001216"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:53.992492" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:53.992829" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:53.993068" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:53.983558" elapsed="0.009615"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:53.994001" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:53.993348" elapsed="0.000800"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:53.999159" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:53.994521" elapsed="0.004747"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:53.994201" elapsed="0.005138"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:53.993307" elapsed="0.006076"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:53.999666" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:54.005957" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:54.000866" elapsed="0.005281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:54.000601" elapsed="0.005707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:54.000159" elapsed="0.006280">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:53.982661" elapsed="0.024020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:53.965948" elapsed="0.041052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:56.009610" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:56.008771" elapsed="0.000903"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:56.010375" elapsed="0.000424"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:56.009841" elapsed="0.001036"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:56.009800" elapsed="0.001127"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:56.034075" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:56.034403" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:56.034681" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:56.025378" elapsed="0.009358"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:56.035581" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:56.034906" elapsed="0.000792"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:56.040416" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:56.035998" elapsed="0.004521"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:56.035747" elapsed="0.004863"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:56.034866" elapsed="0.005788"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:56.040905" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:56.046576" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:56.041896" elapsed="0.004832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:56.041649" elapsed="0.005228">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:56.041372" elapsed="0.005630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:56.024476" elapsed="0.022855">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:56.007895" elapsed="0.039668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:48:58.050340" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:48:58.049445" elapsed="0.000960"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:48:58.051149" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:58.050609" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:58.050563" elapsed="0.001145"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:48:58.075009" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:48:58.075334" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:48:58.075551" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:48:58.066206" elapsed="0.009401"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:48:58.076385" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:48:58.075766" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:48:58.081960" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:48:58.076826" elapsed="0.005238"/>
</kw>
<status status="PASS" start="2026-09-05T23:48:58.076573" elapsed="0.005595"/>
</branch>
<status status="PASS" start="2026-09-05T23:48:58.075729" elapsed="0.006487"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:48:58.082467" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:48:58.088653" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:48:58.083568" elapsed="0.005253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:48:58.083231" elapsed="0.005741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:48:58.082934" elapsed="0.006293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:48:58.065324" elapsed="0.024121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:48:58.048505" elapsed="0.041161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:00.092587" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:00.091618" elapsed="0.001039"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:00.093457" elapsed="0.000492"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:00.092843" elapsed="0.001192"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:00.092796" elapsed="0.001295"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:00.119354" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:00.119704" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:00.119938" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:00.110195" elapsed="0.009798"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:00.120954" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:00.120229" elapsed="0.000846"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:00.126196" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:00.121451" elapsed="0.004871"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:00.121155" elapsed="0.005250"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:00.120176" elapsed="0.006278"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:00.126807" elapsed="0.000402"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:00.132860" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:00.127913" elapsed="0.005109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:00.127640" elapsed="0.005665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:00.127321" elapsed="0.006117">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:00.109027" elapsed="0.024650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:00.090664" elapsed="0.043242">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:02.136680" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:02.135782" elapsed="0.000970"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:02.137511" elapsed="0.000491"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:02.136950" elapsed="0.001134"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:02.136907" elapsed="0.001259"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:02.164833" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:02.165162" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:02.165383" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:02.155408" elapsed="0.010028"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:02.166292" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:02.165626" elapsed="0.000789"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:02.171249" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:02.166752" elapsed="0.004603"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:02.166467" elapsed="0.004957"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:02.165584" elapsed="0.005884"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:02.171752" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:02.177555" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:02.172806" elapsed="0.005000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:02.172554" elapsed="0.005404">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:02.172266" elapsed="0.005818">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:02.154501" elapsed="0.023844">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:02.134885" elapsed="0.043708">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:04.181370" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:04.180466" elapsed="0.000969"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:04.182188" elapsed="0.000433"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:04.181637" elapsed="0.001062"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:04.181593" elapsed="0.001157"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:04.206594" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:04.206888" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:04.207088" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:04.197328" elapsed="0.009849"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:04.208196" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:04.207356" elapsed="0.001001"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:04.213732" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:04.208847" elapsed="0.004991"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:04.208428" elapsed="0.005480"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:04.207305" elapsed="0.006645"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:04.214331" elapsed="0.000371"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:04.220296" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:04.215363" elapsed="0.005087">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:04.215075" elapsed="0.005552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:04.214815" elapsed="0.005940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:04.196446" elapsed="0.024515">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:04.179572" elapsed="0.041617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:06.223819" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:06.222947" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:06.224611" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:06.224046" elapsed="0.001052"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:06.224004" elapsed="0.001176"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:06.248459" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:06.248770" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:06.248962" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:06.239642" elapsed="0.009372"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:06.249807" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:06.249203" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:06.254712" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:06.250336" elapsed="0.004477"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:06.250046" elapsed="0.004837"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:06.249163" elapsed="0.005764"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:06.255207" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:06.260841" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:06.256199" elapsed="0.004789">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:06.255929" elapsed="0.005252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:06.255673" elapsed="0.005650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:06.238761" elapsed="0.022788">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:06.222062" elapsed="0.039684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:08.264582" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:08.263562" elapsed="0.001088"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:08.265496" elapsed="0.000532"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:08.264824" elapsed="0.001286"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:08.264781" elapsed="0.001427"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:08.291397" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:08.291888" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:08.292238" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:08.282586" elapsed="0.009707"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:08.293151" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:08.292468" elapsed="0.000801"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:08.297972" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:08.293605" elapsed="0.004471"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:08.293319" elapsed="0.004887"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:08.292424" elapsed="0.005857"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:08.298569" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:08.304164" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:08.299620" elapsed="0.004711">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:08.299346" elapsed="0.005135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:08.299047" elapsed="0.005582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:08.281667" elapsed="0.023170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:08.262662" elapsed="0.042369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:10.308287" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:10.307344" elapsed="0.001216"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:10.309347" elapsed="0.000569"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:10.308751" elapsed="0.001245"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:10.308706" elapsed="0.001347"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:10.333617" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:10.333988" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:10.334244" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:10.324909" elapsed="0.009394"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:10.335101" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:10.334473" elapsed="0.000803"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:10.340843" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:10.335623" elapsed="0.005328"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:10.335330" elapsed="0.005694"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:10.334431" elapsed="0.006639"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:10.341367" elapsed="0.000400"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:10.347780" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:10.342433" elapsed="0.005500">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:10.342181" elapsed="0.005904">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:10.341883" elapsed="0.006363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:10.323994" elapsed="0.024459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:10.306318" elapsed="0.042361">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:12.351538" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:12.350665" elapsed="0.000939"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:12.352339" elapsed="0.000530"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:12.351776" elapsed="0.001173"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:12.351735" elapsed="0.001266"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:12.376073" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:12.376444" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:12.376675" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:12.367607" elapsed="0.009120"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:12.377507" elapsed="0.000150"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:12.376887" elapsed="0.000837"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:12.382436" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:12.378029" elapsed="0.004529"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:12.377773" elapsed="0.004857"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:12.376849" elapsed="0.005826"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:12.382924" elapsed="0.000368"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:12.388663" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:12.383933" elapsed="0.004882">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:12.383687" elapsed="0.005277">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:12.383404" elapsed="0.005685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:12.366459" elapsed="0.022869">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:12.349716" elapsed="0.039829">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:14.392368" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:14.391448" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:14.393191" elapsed="0.000432"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:14.392641" elapsed="0.001062"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:14.392596" elapsed="0.001158"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:14.417195" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:14.417477" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:14.417718" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:14.408328" elapsed="0.009445"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:14.418578" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:14.417933" elapsed="0.000762"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:14.423452" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:14.418999" elapsed="0.004579"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:14.418744" elapsed="0.004915"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:14.417896" elapsed="0.005820"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:14.423991" elapsed="0.000412"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:14.429739" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:14.425045" elapsed="0.004844">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:14.424800" elapsed="0.005235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:14.424538" elapsed="0.005655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:14.407411" elapsed="0.022991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:14.390558" elapsed="0.040157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:16.433391" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:16.432539" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:16.434196" elapsed="0.000434"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:16.433648" elapsed="0.001060"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:16.433604" elapsed="0.001156"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:16.458258" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:16.458577" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:16.458775" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:16.448803" elapsed="0.010023"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:16.459626" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:16.458986" elapsed="0.000756"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:16.464367" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:16.460043" elapsed="0.004429"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:16.459791" elapsed="0.004773"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:16.458947" elapsed="0.005662"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:16.464862" elapsed="0.000368"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:16.470928" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:16.465858" elapsed="0.005218">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:16.465615" elapsed="0.005683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:16.465338" elapsed="0.006094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:16.447907" elapsed="0.023843">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:16.431663" elapsed="0.040286">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:18.474613" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:18.473752" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:18.475393" elapsed="0.000425"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:18.474846" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:18.474804" elapsed="0.001142"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:18.499083" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:18.499412" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:18.499639" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:18.490183" elapsed="0.009510"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:18.500503" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:18.499862" elapsed="0.000780"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:18.505337" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:18.500947" elapsed="0.004495"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:18.500692" elapsed="0.004841"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:18.499822" elapsed="0.005759"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:18.505837" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:18.511500" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:18.506844" elapsed="0.004827">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:18.506595" elapsed="0.005224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:18.506312" elapsed="0.005731">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:18.489274" elapsed="0.023012">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:18.472861" elapsed="0.039624">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:20.515241" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:20.514355" elapsed="0.000954"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:20.516033" elapsed="0.000444"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:20.515487" elapsed="0.001093"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:20.515443" elapsed="0.001189"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:20.541411" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:20.541721" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:20.541937" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:20.531668" elapsed="0.010322"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:20.542797" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:20.542185" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:20.547627" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:20.543246" elapsed="0.004484"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:20.542962" elapsed="0.004839"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:20.542113" elapsed="0.005733"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:20.548099" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:20.553736" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:20.549102" elapsed="0.004782">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:20.548857" elapsed="0.005292">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:20.548599" elapsed="0.005685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:20.530784" elapsed="0.023705">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:20.513440" elapsed="0.041271">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:22.557380" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:22.556535" elapsed="0.000909"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:22.558194" elapsed="0.000433"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:22.557644" elapsed="0.001061"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:22.557601" elapsed="0.001154"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:22.583047" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:22.583431" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:22.583663" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:22.573729" elapsed="0.009996"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:22.584599" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:22.583915" elapsed="0.000815"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:22.590438" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:22.585035" elapsed="0.005561"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:22.584781" elapsed="0.005900"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:22.583874" elapsed="0.006860"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:22.591046" elapsed="0.000447"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:22.599417" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:22.592328" elapsed="0.007443">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:22.591986" elapsed="0.007996">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:22.591665" elapsed="0.008535">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:22.572721" elapsed="0.027800">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:22.555660" elapsed="0.045148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:24.603612" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:24.602730" elapsed="0.000949"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:24.604415" elapsed="0.000454"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:24.603857" elapsed="0.001091"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:24.603810" elapsed="0.001191"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:24.628955" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:24.629282" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:24.629480" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:24.619328" elapsed="0.010234"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:24.630346" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:24.629727" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:24.635108" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:24.630794" elapsed="0.004452"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:24.630534" elapsed="0.004783"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:24.629688" elapsed="0.005672"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:24.635770" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:24.641341" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:24.636779" elapsed="0.004710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:24.636532" elapsed="0.005136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:24.636250" elapsed="0.005542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:24.618443" elapsed="0.023550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:24.601821" elapsed="0.040399">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:26.645085" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:26.644186" elapsed="0.001002"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:26.645947" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:26.645368" elapsed="0.001144"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:26.645323" elapsed="0.001247"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:26.670939" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:26.671283" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:26.671539" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:26.661864" elapsed="0.009747"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:26.672461" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:26.671821" elapsed="0.000785"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:26.677614" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:26.673032" elapsed="0.004689"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:26.672757" elapsed="0.005036"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:26.671781" elapsed="0.006058"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:26.678152" elapsed="0.000378"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:26.683951" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:26.679213" elapsed="0.004902">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:26.678918" elapsed="0.005400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:26.678646" elapsed="0.005802">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:26.660915" elapsed="0.023775">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:26.643229" elapsed="0.041660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:28.687559" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:28.686693" elapsed="0.000931"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:28.688346" elapsed="0.000427"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:28.687794" elapsed="0.001057"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:28.687752" elapsed="0.001148"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:28.714539" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:28.714834" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:28.715188" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:28.704404" elapsed="0.010850"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:28.716092" elapsed="0.000107"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:28.715420" elapsed="0.000867"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:28.721834" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:28.716627" elapsed="0.005315"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:28.716340" elapsed="0.005674"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:28.715380" elapsed="0.006678"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:28.722351" elapsed="0.000379"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:28.728314" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:28.723379" elapsed="0.005086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:28.723104" elapsed="0.005532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:28.722845" elapsed="0.005918">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:28.703388" elapsed="0.025579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:28.685831" elapsed="0.043409">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:30.732004" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:30.731144" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:30.732819" elapsed="0.000451"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:30.732274" elapsed="0.001073"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:30.732229" elapsed="0.001167"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:30.756911" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:30.757393" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:30.757637" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:30.747265" elapsed="0.010426"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:30.758574" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:30.757872" elapsed="0.000820"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:30.763398" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:30.759002" elapsed="0.004519"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:30.758742" elapsed="0.004858"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:30.757828" elapsed="0.005819"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:30.763898" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:30.769647" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:30.764915" elapsed="0.004885">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:30.764662" elapsed="0.005288">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:30.764381" elapsed="0.005694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:30.746405" elapsed="0.023912">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:30.730230" elapsed="0.040304">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:32.773175" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:32.772315" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:32.773953" elapsed="0.000577"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:32.773410" elapsed="0.001202"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:32.773366" elapsed="0.001297"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:32.798678" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:32.798961" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:32.799215" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:32.789535" elapsed="0.009735"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:32.800078" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:32.799443" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:32.804937" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:32.800558" elapsed="0.004483"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:32.800282" elapsed="0.004830"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:32.799402" elapsed="0.005821"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:32.805587" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:32.811836" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:32.806623" elapsed="0.005361">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:32.806349" elapsed="0.005816">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:32.806058" elapsed="0.006234">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:32.788638" elapsed="0.023879">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:32.771466" elapsed="0.041249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:34.815904" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:34.815012" elapsed="0.000956"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:34.816716" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:34.816175" elapsed="0.001089"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:34.816094" elapsed="0.001220"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:34.840094" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:34.840423" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:34.840639" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:34.831196" elapsed="0.009496"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:34.841498" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:34.840852" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:34.846320" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:34.841917" elapsed="0.004505"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:34.841666" elapsed="0.004847"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:34.840814" elapsed="0.005745"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:34.846805" elapsed="0.000371"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:34.852804" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:34.847812" elapsed="0.005143">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:34.847571" elapsed="0.005531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:34.847287" elapsed="0.005976">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:34.830334" elapsed="0.023135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:34.813945" elapsed="0.039827">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:36.856528" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:36.855617" elapsed="0.000980"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:36.857390" elapsed="0.000469"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:36.856776" elapsed="0.001168"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:36.856732" elapsed="0.001266"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:36.883082" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:36.883432" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:36.883677" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:36.873341" elapsed="0.010393"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:36.884640" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:36.883916" elapsed="0.000850"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:36.890006" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:36.885092" elapsed="0.005062"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:36.884819" elapsed="0.005413"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:36.883872" elapsed="0.006408"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:36.890572" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:36.896664" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:36.891637" elapsed="0.005185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:36.891349" elapsed="0.005632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:36.891046" elapsed="0.006066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:36.872372" elapsed="0.025148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:36.854700" elapsed="0.043040">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:38.900538" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:38.899655" elapsed="0.000949"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:38.901438" elapsed="0.000494"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:38.900801" elapsed="0.001216"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:38.900754" elapsed="0.001315"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:38.928167" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:38.928454" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:38.928700" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:38.919319" elapsed="0.009436"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:38.929599" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:38.928924" elapsed="0.000806"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:38.934671" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:38.930076" elapsed="0.004697"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:38.929793" elapsed="0.005048"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:38.928883" elapsed="0.006004"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:38.935192" elapsed="0.000378"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:38.940848" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:38.936219" elapsed="0.004779">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:38.935940" elapsed="0.005236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:38.935684" elapsed="0.005744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:38.918430" elapsed="0.023279">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:38.898721" elapsed="0.043217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:40.944810" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:40.943832" elapsed="0.001053"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:40.945704" elapsed="0.000484"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:40.945066" elapsed="0.001206"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:40.945021" elapsed="0.001303"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:40.969943" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:40.970269" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:40.970499" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:40.960992" elapsed="0.009561"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:40.971354" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:40.970712" elapsed="0.000780"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:40.976208" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:40.971794" elapsed="0.004551"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:40.971542" elapsed="0.004890"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:40.970673" elapsed="0.005840"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:40.976840" elapsed="0.000432"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:40.983436" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:40.977915" elapsed="0.005705">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:40.977670" elapsed="0.006224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:40.977384" elapsed="0.006644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:40.960079" elapsed="0.024187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:40.942910" elapsed="0.041570">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:42.987272" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:42.986387" elapsed="0.000950"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:42.988083" elapsed="0.000478"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:42.987534" elapsed="0.001107"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:42.987489" elapsed="0.001202"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:43.010487" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:43.010788" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:43.010987" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:43.003004" elapsed="0.008035"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:43.011874" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:43.011237" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:43.016719" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:43.012333" elapsed="0.004488"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:43.012040" elapsed="0.004850"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:43.011197" elapsed="0.005738"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:43.017216" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:43.022784" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:43.018202" elapsed="0.004824">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:43.017932" elapsed="0.005276">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:43.017677" elapsed="0.005658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:43.002082" elapsed="0.021477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:42.985412" elapsed="0.038345">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:45.026721" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:45.025811" elapsed="0.000977"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:45.027537" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:45.026961" elapsed="0.001062"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:45.026916" elapsed="0.001158"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:45.052062" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:45.052421" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:45.052667" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:45.042802" elapsed="0.009920"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:45.053526" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:45.052882" elapsed="0.000760"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:45.058385" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:45.053945" elapsed="0.004574"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:45.053692" elapsed="0.004901"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:45.052843" elapsed="0.005794"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:45.058978" elapsed="0.000417"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:45.064710" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:45.060034" elapsed="0.004823">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:45.059789" elapsed="0.005213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:45.059526" elapsed="0.005632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:45.041919" elapsed="0.023447">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:45.024887" elapsed="0.040699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:47.068513" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:47.067630" elapsed="0.000949"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:47.069296" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:47.068750" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:47.068705" elapsed="0.001150"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:47.091320" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:47.091656" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:47.091857" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:47.084058" elapsed="0.007853"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:47.092735" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:47.092071" elapsed="0.000778"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:47.097885" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:47.093309" elapsed="0.004680"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:47.092990" elapsed="0.005069"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:47.092032" elapsed="0.006072"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:47.098398" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:47.104458" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:47.099448" elapsed="0.005162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:47.099172" elapsed="0.005588">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:47.098878" elapsed="0.006008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:47.083197" elapsed="0.021892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:47.066665" elapsed="0.038653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:49.107939" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:49.107083" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:49.108726" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:49.108197" elapsed="0.001045"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:49.108154" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:49.132765" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:49.133061" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:49.133419" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:49.123314" elapsed="0.010184"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:49.134289" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:49.133662" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:49.139035" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:49.134722" elapsed="0.004476"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:49.134469" elapsed="0.004802"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:49.133623" elapsed="0.005692"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:49.139583" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:49.145060" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:49.140568" elapsed="0.004668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:49.140307" elapsed="0.005077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:49.140024" elapsed="0.005506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:49.122464" elapsed="0.023269">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:49.106217" elapsed="0.039710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:51.148512" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:51.147654" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:51.149296" elapsed="0.000429"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:51.148750" elapsed="0.001052"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:51.148707" elapsed="0.001145"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:51.176357" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:51.176760" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:51.176977" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:51.167071" elapsed="0.009959"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:51.177842" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:51.177222" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:51.182634" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:51.178300" elapsed="0.004437"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:51.178007" elapsed="0.004799"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:51.177181" elapsed="0.005669"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:51.183102" elapsed="0.000396"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:51.189921" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:51.184108" elapsed="0.006048">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:51.183863" elapsed="0.006502">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:51.183606" elapsed="0.006962">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:51.166222" elapsed="0.024633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:51.146802" elapsed="0.044364">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:53.193838" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:53.192943" elapsed="0.000958"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:53.194677" elapsed="0.000582"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:53.194071" elapsed="0.001271"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:53.194029" elapsed="0.001365"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:53.219670" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:53.219976" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:53.220231" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:53.209995" elapsed="0.010292"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:53.221185" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:53.220499" elapsed="0.000805"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:53.226014" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:53.221636" elapsed="0.004480"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:53.221354" elapsed="0.004860"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:53.220451" elapsed="0.005806"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:53.226526" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:53.232709" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:53.227516" elapsed="0.005344">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:53.227248" elapsed="0.005762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:53.226967" elapsed="0.006208">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:53.209091" elapsed="0.024309">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:53.192082" elapsed="0.041536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:55.236490" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:55.235586" elapsed="0.000972"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:55.237320" elapsed="0.000454"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:55.236754" elapsed="0.001102"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:55.236704" elapsed="0.001204"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:55.260852" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:55.261201" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:55.261423" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:55.252033" elapsed="0.009446"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:55.262269" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:55.261641" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:55.267173" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:55.262710" elapsed="0.004569"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:55.262454" elapsed="0.004896"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:55.261602" elapsed="0.005792"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:55.267689" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:55.273512" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:55.268714" elapsed="0.004947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:55.268470" elapsed="0.005339">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:55.268182" elapsed="0.005749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:55.251178" elapsed="0.022988">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:55.234679" elapsed="0.039811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:57.277292" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:57.276283" elapsed="0.001084"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:57.278162" elapsed="0.000603"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:57.277574" elapsed="0.001277"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:57.277527" elapsed="0.001378"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:57.304287" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:57.304601" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:57.304837" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:57.294029" elapsed="0.010866"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:57.305778" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:57.305068" elapsed="0.000835"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:57.310830" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:57.306260" elapsed="0.004673"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:57.305958" elapsed="0.005047"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:57.305027" elapsed="0.006022"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:57.311334" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:57.317031" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:57.312332" elapsed="0.004892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:57.312059" elapsed="0.005325">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:57.311804" elapsed="0.005740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:57.293100" elapsed="0.024750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:57.275431" elapsed="0.042618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:49:59.320696" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:49:59.319818" elapsed="0.000943"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:49:59.321605" elapsed="0.000425"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:59.320966" elapsed="0.001147"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:59.320910" elapsed="0.001300"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:49:59.345407" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:49:59.345695" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:49:59.345892" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:49:59.336981" elapsed="0.008966"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:49:59.346761" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:49:59.346110" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:49:59.352022" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:49:59.347238" elapsed="0.005011"/>
</kw>
<status status="PASS" start="2026-09-05T23:49:59.346928" elapsed="0.005427"/>
</branch>
<status status="PASS" start="2026-09-05T23:49:59.346071" elapsed="0.006380"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:49:59.352793" elapsed="0.000416"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:49:59.358845" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:49:59.353851" elapsed="0.005144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:49:59.353605" elapsed="0.005572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:49:59.353323" elapsed="0.006095">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:49:59.336007" elapsed="0.023625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:49:59.318933" elapsed="0.040898">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:01.362626" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:01.361751" elapsed="0.000938"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:01.363440" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:01.362864" elapsed="0.001076"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:01.362820" elapsed="0.001170"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:01.388517" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:01.388823" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:01.389025" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:01.379588" elapsed="0.009490"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:01.389972" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:01.389326" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:01.395217" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:01.390497" elapsed="0.004828"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:01.390174" elapsed="0.005249"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:01.389282" elapsed="0.006247"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:01.395837" elapsed="0.000422"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:01.401741" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:01.396923" elapsed="0.004973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:50:01.396671" elapsed="0.005506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:01.396398" elapsed="0.005916">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:01.378612" elapsed="0.023943">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:01.360834" elapsed="0.041967">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:03.405582" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:03.404655" elapsed="0.000995"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:03.406623" elapsed="0.000423"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:03.405829" elapsed="0.001323"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:03.405784" elapsed="0.001421"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:03.431213" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:03.431536" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:03.431763" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:03.422068" elapsed="0.009748"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:03.432688" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:03.431997" elapsed="0.000807"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:03.437597" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:03.433112" elapsed="0.004586"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:03.432858" elapsed="0.004908"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:03.431953" elapsed="0.005858"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:03.438063" elapsed="0.000404"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:03.443681" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:03.439092" elapsed="0.004849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:50:03.438838" elapsed="0.005254">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:03.438579" elapsed="0.005675">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:03.421161" elapsed="0.023327">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:03.403756" elapsed="0.040933">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:05.447331" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:05.446489" elapsed="0.000945"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:05.448175" elapsed="0.000520"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:05.447612" elapsed="0.001159"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:05.447567" elapsed="0.001256"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:05.471991" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:05.472323" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:05.472553" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:05.463022" elapsed="0.009586"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:05.473486" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:05.472805" elapsed="0.000797"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:05.478277" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:05.473909" elapsed="0.004492"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:05.473653" elapsed="0.004820"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:05.472762" elapsed="0.005756"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:05.478865" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:05.484903" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:05.479888" elapsed="0.005169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-05T23:50:05.479631" elapsed="0.005614">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:05.479351" elapsed="0.006041">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:05.462170" elapsed="0.023433">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:05.445627" elapsed="0.040169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-09-05T23:50:05.485978" level="FAIL">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-05T23:48:33.540576" elapsed="91.945646">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-05T23:50:05.486603" elapsed="0.000046"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:05.488316" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-05T23:50:05.806905" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:50:05.807295" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:50:05.807415" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:50:05.807502" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:05.487934" elapsed="0.319615"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:05.808640" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:05.807977" elapsed="0.000838"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:05.809519" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-05T23:50:06.186026" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:50:06.186439" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:50:06.186532" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:50:06.186615" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:05.809112" elapsed="0.377550"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.187538" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-05T23:50:06.253678" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:50:06.253971" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-05T23:50:06.254410" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:50:06.254540" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:06.187075" elapsed="0.067537"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.255447" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-05T23:50:06.305735" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:06.255115" elapsed="0.050805"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:06.319960" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:06.320052" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:06.320277" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:50:06.306532" elapsed="0.013797"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:06.330289" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 path_url=/rests/data/netconf-keystore:keystore 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node07kk4gw331demi1b74jnzp6843.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:06.330811" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:50:06.331031" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:50:06.320641" elapsed="0.010443"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-05T23:50:05.487281" elapsed="0.843981"/>
</kw>
<doc>CallHome SSH device registered with wrong global credentials should fail to mount.</doc>
<status status="FAIL" start="2026-09-05T23:48:32.754650" elapsed="93.576739">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNM+sKizzotUU63p6nbMf7pd4StbInbcjOo8c9Y/IYbQHkSRdb+KrqwJrHND9HK7wrOf6Gf28Vlsq0c4jECNGHM4a4kElkhEPLGSkGEgCq3L9PhaY3b/r0lRZ+bAc/Ye2XRVonmh5ioC1U/hn0ttfMux8IQrlLNxy7xtXygKz2YCEzyhZSt9zfDn5mWHGkyJ6DtiHYQvAC2cNaV5xvVUya76YE1ipivWXA/uKS7V641GkUJh5SEhJhfRshGIL2Lwh+mFhtbvoyexT1n8xNiQ2xJLlkVNj9PbUZ0xX2dpGWwQI8BB0nEAhA1oHj3qE1B9+k+XvzQmkQXkhkGRPSINN"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</test>
<test id="s1-s1-t5" name="CallHome with Incorrect Node-id" line="91">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:06.339247" level="INFO">Creating Session using : alias=session, url=http://10.30.170.144:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71d22e13ad50&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-09-05T23:50:06.338621" elapsed="0.001056"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.340093" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-05T23:50:06.353971" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:06.339934" elapsed="0.014114"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.354410" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:50:06.506640" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:06.354263" elapsed="0.152563"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.507578" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-05T23:50:06.558335" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:50:06.558735" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC81ee/Y9dz85iEOstz/czD0kyHCgKT0TJ6ihuA7Y1AtYaly84W2MZsfl6Xt3IUDlr5Ay2dj7gg1vsK64fyUet1DZeisrefWFWGvlRnlatSGi8ljwa0FXnZ3x0OkqzjMmeneYqQ8O8Y3pT3GGqh49HxYEoiuGTjwzBzV1Lk0nzo...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:06.507281" elapsed="0.051509"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:50:06.567159" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC81ee/Y9dz85iEOstz/czD0kyHCgKT0TJ6ihuA7Y1AtYaly84W2MZsfl6Xt3IUDlr5Ay2dj7gg1vsK64fyUet1DZeisrefWFWGvlRnlatSGi8ljwa0FXnZ3x0OkqzjMmeneYqQ8O8Y3pT3GGqh49HxYEoiuGTjwzBzV1Lk0nzo...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:50:06.559212" elapsed="0.008043"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-05T23:50:06.336495" elapsed="0.230918"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.606207" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml' -&gt; '/home/jenkins/configuration-files/ietf-netconf-server.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml</arg>
<arg>configuration-files/ietf-netconf-server.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:50:06.568398" elapsed="0.037929"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.626302" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml' -&gt; '/home/jenkins/configuration-files/ietf-keystore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml</arg>
<arg>configuration-files/ietf-keystore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:50:06.606640" elapsed="0.019800"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-05T23:50:06.567792" elapsed="0.058776"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-05T23:50:06.635457" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:06.627925" elapsed="0.007641"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:50:06.636794" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:50:06.637078" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:50:06.636480" elapsed="0.000681"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:50:06.638169" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:50:06.637489" elapsed="0.000768"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:06.635906" elapsed="0.002483"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:06.635622" elapsed="0.002817"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:06.627874" elapsed="0.010609"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.639273" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}"...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.638751" elapsed="0.000577"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.640100" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
   ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.639647" elapsed="0.000537"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.640937" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
         ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.640491" elapsed="0.000500"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.641771" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
         ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.641303" elapsed="0.000521"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:06.665954" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '619', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
          "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/"
        }
    }
}
 
 </msg>
<msg time="2026-09-05T23:50:06.666209" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0j2fbkogtvx7c180xydekq68js4.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 04-Sep-2026 23:50:06 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=incorrect_hostname', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:06.666460" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:50:06.642091" elapsed="0.024423"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:50:06.666829" elapsed="0.004423"/>
</kw>
<arg>incorrect_hostname</arg>
<arg>${INCORRECT_PUB_KEY}</arg>
<arg>root</arg>
<arg>root</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-05T23:50:06.627076" elapsed="0.044322"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:50:06.687301" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:50:06.687634" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:50:06.686949" elapsed="0.000737"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:50:06.688801" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:50:06.688017" elapsed="0.000867"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:06.686380" elapsed="0.002614"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:06.679224" elapsed="0.009816"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-05T23:50:06.689728" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:06.689093" elapsed="0.000739"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:06.679180" elapsed="0.010695"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.690676" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.690170" elapsed="0.000558"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.692038" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.691094" elapsed="0.001001"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.692998" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.692511" elapsed="0.000538"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:06.694079" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC81ee/Y9dz85iEOstz/czD0kyHCgKT0TJ6ihuA7Y1AtYaly84W2MZsfl6Xt3IU...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:06.693572" elapsed="0.000589"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:06.708252" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Cookie': 'JSESSIONID=node0j2fbkogtvx7c180xydekq68js4.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC81ee/Y9dz85iEOstz/czD0kyHCgKT0TJ6ihuA7Y1AtYaly84W2MZsfl6Xt3IUDlr5Ay2dj7gg1vsK64fyUet1DZeisrefWFWGvlRnlatSGi8ljwa0FXnZ3x0OkqzjMmeneYqQ8O8Y3pT3GGqh49HxYEoiuGTjwzBzV1Lk0nzo5fCRoY2jsMMxjYrqpHllZRYhOarTeqbRc6NVmoO1FFGJCZpHzqOSocZuIBPonT9rGTfe2pyy4Gw/ExI1qPbLmyQwOgshhNyTs0NEZ861bn9/c+5a8lqi2o8MOVPdG/BN8WgoN75xH+TJv6VxtokjOI52S+9Z8wYqzDzaMWWGjKsV"
        }
    }
}
 
 </msg>
<msg time="2026-09-05T23:50:06.708384" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:06.708566" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:50:06.694494" elapsed="0.014121"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:50:06.708935" elapsed="0.004537"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-05T23:50:06.671892" elapsed="0.041707"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:06.714415" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-05T23:50:07.031588" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:50:07.031845" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:50:07.031933" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:50:07.032016" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:06.713893" elapsed="0.318170"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:07.035276" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"DISCONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:07.034514" elapsed="0.000821"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-05T23:50:07.036066" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:07.035535" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:07.035488" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:07.059736" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0j2fbkogtvx7c180xydekq68js4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:07.060074" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '1082'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"incorrect_hostname","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC81ee/Y9dz85iEOstz/czD0kyHCgKT0TJ6ihuA7Y1AtYaly84W2MZsfl6Xt3IUDlr5Ay2dj7gg1vsK64fyUet1DZeisrefWFWGvlRnlatSGi8ljwa0FXnZ3x0OkqzjMmeneYqQ8O8Y3pT3GGqh49HxYEoiuGTjwzBzV1Lk0nzo5fCRoY2jsMMxjYrqpHllZRYhOarTeqbRc6NVmoO1FFGJCZpHzqOSocZuIBPonT9rGTfe2pyy4Gw/ExI1qPbLmyQwOgshhNyTs0NEZ861bn9/c+5a8lqi2o8MOVPdG/BN8WgoN75xH+TJv6VxtokjOI52S+9Z8wYqzDzaMWWGjKsV"}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:07.060335" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:07.050903" elapsed="0.009507"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:07.061236" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:07.060578" elapsed="0.000797"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:07.066113" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"incorrect_hostname","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC81ee/Y9dz85iEOstz/czD0kyHCgKT0TJ6ihuA7Y1AtYaly84W2MZsfl6Xt3IUDlr5Ay2dj7gg1vsK64fyUet1DZeisrefWFWGvlRnlatSGi8ljwa0FXnZ3x0OkqzjMmeneYqQ8O8Y3pT3GGqh49HxYEoiuGTjwzBzV1Lk0nzo5fCRoY2jsMMxjYrqpHllZRYhOarTeqbRc6NVmoO1FFGJCZpHzqOSocZuIBPonT9rGTfe2pyy4Gw/ExI1qPbLmyQwOgshhNyTs0NEZ861bn9/c+5a8lqi2o8MOVPdG/BN8WgoN75xH+TJv6VxtokjOI52S+9Z8wYqzDzaMWWGjKsV"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:07.061682" elapsed="0.004578"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:07.061430" elapsed="0.004901"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:07.060534" elapsed="0.005876"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:07.066685" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:50:07.067714" elapsed="0.004542"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-05T23:50:07.067469" elapsed="0.005042"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:50:07.072950" elapsed="0.004721"/>
</kw>
<var name="${i}">"device-status":"DISCONNECTED"</var>
<status status="PASS" start="2026-09-05T23:50:07.072705" elapsed="0.005048"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="PASS" start="2026-09-05T23:50:07.067171" elapsed="0.010643"/>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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="PASS" start="2026-09-05T23:50:07.050025" elapsed="0.027898"/>
</kw>
<arg>DISCONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="PASS" start="2026-09-05T23:50:07.033751" elapsed="0.044281"/>
</kw>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>DISCONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-05T23:50:07.032517" elapsed="0.045637"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Run Keyword And Expect Error" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:07.121408" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/network-topology:network-topology/topology=topology-netconf?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=topology-netconf?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0j2fbkogtvx7c180xydekq68js4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:07.121606" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/network-topology:network-topology/topology=topology-netconf?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '990'} 
 body={"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]} 
 </msg>
<msg time="2026-09-05T23:50:07.121807" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:07.092824" elapsed="0.029037"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:07.122710" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:07.122022" elapsed="0.000802"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:07.127783" level="INFO">{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:07.123151" elapsed="0.004741"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:07.122873" elapsed="0.005088"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:07.121982" elapsed="0.006023"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:07.128288" elapsed="0.000382"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:07.134103" level="FAIL">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:07.129339" elapsed="0.005079">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</kw>
<var name="${i}">"connection-status":"connected"</var>
<status status="FAIL" start="2026-09-05T23:50:07.129030" elapsed="0.005550">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:07.128778" elapsed="0.005947">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</for>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</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-09-05T23:50:07.092209" elapsed="0.042797">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</kw>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the keyword and checks that the expected error occurred.</doc>
<status status="PASS" start="2026-09-05T23:50:07.079533" elapsed="0.055895"/>
</kw>
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-05T23:50:07.078497" elapsed="0.057047"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:07.137246" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-05T23:50:07.433667" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:50:07.433915" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:50:07.434003" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:50:07.434084" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:07.136846" elapsed="0.297329"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:07.435065" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:07.434532" elapsed="0.000650"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:07.435812" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-05T23:50:07.749021" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:50:07.749755" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:50:07.749885" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:50:07.750008" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:07.435485" elapsed="0.314593"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:07.751329" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-05T23:50:07.818043" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:50:07.818551" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-05T23:50:07.818643" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:50:07.818725" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:07.750736" elapsed="0.068037"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:07.819626" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-05T23:50:07.864809" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:07.819291" elapsed="0.045636"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:07.879215" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0j2fbkogtvx7c180xydekq68js4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:07.879308" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:07.879567" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:50:07.865246" elapsed="0.014373"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:07.887227" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 path_url=/rests/data/netconf-keystore:keystore 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0j2fbkogtvx7c180xydekq68js4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:07.887549" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:50:07.887762" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:50:07.879901" elapsed="0.007912"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-05T23:50:07.136111" elapsed="0.751844"/>
</kw>
<doc>CallHome from device that does not have an entry in per-device credential with result to mount point failure.</doc>
<status status="PASS" start="2026-09-05T23:50:06.332930" elapsed="1.555244"/>
</test>
<test id="s1-s1-t6" name="CallHome with Rogue Devices" line="111">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:07.891637" level="INFO">Creating Session using : alias=session, url=http://10.30.170.144:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71d22e114310&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-09-05T23:50:07.891055" elapsed="0.000864"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:07.892451" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-05T23:50:07.912968" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:07.892234" elapsed="0.020847"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:07.913623" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:50:08.095936" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:07.913426" elapsed="0.182631"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:08.096607" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-05T23:50:08.149052" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:50:08.149277" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC+bNie8SX9sYHYjqCP+NrehFBHWbMRgDb4JgMxIymoT4320J9wuXvwysutRT71oYoMxwyXc/sr5QrjSwISUcMu7DqXrVh0DTxujqbAMNfC5YmtHkNnlwBRtIQ6gwfOfLRaeYsNpdBmFWrC8vul2wIY4KgWUEUTNlc8imM5ofP+...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:08.096405" elapsed="0.052924"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:50:08.157534" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC+bNie8SX9sYHYjqCP+NrehFBHWbMRgDb4JgMxIymoT4320J9wuXvwysutRT71oYoMxwyXc/sr5QrjSwISUcMu7DqXrVh0DTxujqbAMNfC5YmtHkNnlwBRtIQ6gwfOfLRaeYsNpdBmFWrC8vul2wIY4KgWUEUTNlc8imM5ofP+...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:50:08.149686" elapsed="0.007941"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-05T23:50:07.890501" elapsed="0.267248"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:50:08.197687" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml' -&gt; '/home/jenkins/configuration-files/ietf-netconf-server.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-netconf-server.xml</arg>
<arg>configuration-files/ietf-netconf-server.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:50:08.158649" elapsed="0.039155"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:50:08.208644" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml' -&gt; '/home/jenkins/configuration-files/ietf-keystore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/ssh/ietf-keystore.xml</arg>
<arg>configuration-files/ietf-keystore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:50:08.198083" elapsed="0.010674"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-05T23:50:08.158073" elapsed="0.050804"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-05T23:50:08.217082" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:08.210160" elapsed="0.007056"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:50:08.218465" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:50:08.218739" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:50:08.218109" elapsed="0.000682"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:50:08.219839" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:50:08.219089" elapsed="0.000835"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:08.217580" elapsed="0.002453"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:08.217276" elapsed="0.002805"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:08.210080" elapsed="0.010077"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:08.220939" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
      ...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:08.220454" elapsed="0.000538"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:08.221782" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
          },...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:08.221304" elapsed="0.000599"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:08.222704" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:08.222229" elapsed="0.000528"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:50:08.223537" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:50:08.223038" elapsed="0.000551"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:08.241224" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '610', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
          "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/"
        }
    }
}
 
 </msg>
<msg time="2026-09-05T23:50:08.241337" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 04-Sep-2026 23:50:08 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:08.241539" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:50:08.223852" elapsed="0.017736"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-05T23:50:08.241897" elapsed="0.005030"/>
</kw>
<arg>netopeer2</arg>
<arg>${INCORRECT_PUB_KEY}</arg>
<arg>root</arg>
<arg>root</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-05T23:50:08.209444" elapsed="0.037623"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:50:08.247770" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-05T23:50:08.564197" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:50:08.564476" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:50:08.564562" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:50:08.564643" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:50:08.247427" elapsed="0.317260"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:08.567826" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:08.567051" elapsed="0.000830"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:08.568589" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:08.568035" elapsed="0.001036"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:08.567994" elapsed="0.001157"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:08.592516" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:08.592819" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:08.593036" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:08.583567" elapsed="0.009522"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:08.593900" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:08.593282" elapsed="0.000810"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:08.598815" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:08.594466" elapsed="0.004451"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:08.594179" elapsed="0.004806"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:08.593242" elapsed="0.005788"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:08.599312" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:08.605068" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:08.600438" elapsed="0.004837">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:08.600072" elapsed="0.005382">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:08.599800" elapsed="0.005783">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:08.582686" elapsed="0.023108">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:08.566335" elapsed="0.039656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:10.608805" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:10.607907" elapsed="0.000963"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:10.609625" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:10.609051" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:10.609005" elapsed="0.001196"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:10.633838" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:10.634172" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:10.634491" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:10.624775" elapsed="0.009772"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:10.635379" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:10.634714" elapsed="0.000781"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:10.640202" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:10.635801" elapsed="0.004510"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:10.635546" elapsed="0.004857"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:10.634672" elapsed="0.005778"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:10.640701" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:10.646734" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:10.641708" elapsed="0.005176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:10.641460" elapsed="0.005587">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:10.641176" elapsed="0.006074">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:10.623866" elapsed="0.023634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:10.606957" elapsed="0.040743">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:12.650528" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:12.649604" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:12.651385" elapsed="0.000439"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:12.650776" elapsed="0.001131"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:12.650730" elapsed="0.001231"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:12.676947" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:12.677403" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:12.677611" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:12.666885" elapsed="0.010779"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:12.678539" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:12.677843" elapsed="0.000811"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:12.683495" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:12.678961" elapsed="0.004638"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:12.678705" elapsed="0.004962"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:12.677799" elapsed="0.005912"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:12.683958" elapsed="0.000383"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:12.689862" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:12.684987" elapsed="0.005028">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:12.684713" elapsed="0.005483">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:12.684454" elapsed="0.005889">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:12.665963" elapsed="0.024594">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:12.648688" elapsed="0.042066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:14.693567" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:14.692702" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:14.694370" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:14.693806" elapsed="0.001052"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:14.693762" elapsed="0.001146"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:14.718371" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:14.718663" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:14.718878" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:14.709406" elapsed="0.009525"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:14.719735" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:14.719091" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:14.724591" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:14.720198" elapsed="0.004496"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:14.719899" elapsed="0.004865"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:14.719052" elapsed="0.005757"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:14.725059" elapsed="0.000389"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:14.730849" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:14.726059" elapsed="0.004944">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:14.725814" elapsed="0.005376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:14.725557" elapsed="0.005785">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:14.708530" elapsed="0.023029">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:14.691811" elapsed="0.040045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:16.735089" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:16.733844" elapsed="0.001357"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:16.736046" elapsed="0.000509"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:16.735443" elapsed="0.001198"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:16.735385" elapsed="0.001319"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:16.758259" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:16.758578" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:16.758772" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:16.750715" elapsed="0.008109"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:16.759627" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:16.758983" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:16.764426" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:16.760041" elapsed="0.004491"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:16.759790" elapsed="0.004811"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:16.758944" elapsed="0.005701"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:16.764895" elapsed="0.000368"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:16.771106" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:16.765902" elapsed="0.005417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:16.765661" elapsed="0.005811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:16.765400" elapsed="0.006195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:16.749832" elapsed="0.022060">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:16.732853" elapsed="0.039262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:18.774846" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:18.773972" elapsed="0.000938"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:18.775697" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:18.775084" elapsed="0.001138"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:18.775039" elapsed="0.001233"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:18.800377" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:18.800676" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:18.800876" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:18.791302" elapsed="0.009625"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:18.802094" elapsed="0.000105"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:18.801091" elapsed="0.001182"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:18.807333" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:18.802644" elapsed="0.004798"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:18.802353" elapsed="0.005159"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:18.801052" elapsed="0.006505"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:18.807807" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:18.813458" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:18.808829" elapsed="0.004776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:18.808575" elapsed="0.005178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:18.808310" elapsed="0.005658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:18.790412" elapsed="0.023804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:18.773082" elapsed="0.041360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:20.817399" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:20.816436" elapsed="0.001038"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:20.818220" elapsed="0.000467"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:20.817653" elapsed="0.001117"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:20.817607" elapsed="0.001216"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:20.842412" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:20.842696" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:20.842913" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:20.833880" elapsed="0.009086"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:20.843789" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:20.843161" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:20.848631" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:20.844265" elapsed="0.004472"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:20.843952" elapsed="0.004855"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:20.843088" elapsed="0.005762"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:20.849099" elapsed="0.000394"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:20.854716" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:20.850102" elapsed="0.004762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:20.849860" elapsed="0.005248">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:20.849602" elapsed="0.005668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:20.832999" elapsed="0.022504">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:20.815476" elapsed="0.040226">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:22.858396" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:22.857509" elapsed="0.000963"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:22.859195" elapsed="0.000450"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:22.858646" elapsed="0.001079"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:22.858604" elapsed="0.001171"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:22.883092" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:22.883465" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:22.883672" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:22.873955" elapsed="0.009770"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:22.884600" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:22.883905" elapsed="0.000813"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:22.889555" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:22.885026" elapsed="0.004635"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:22.884769" elapsed="0.004963"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:22.883862" elapsed="0.005914"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:22.890028" elapsed="0.000422"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:22.896212" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:22.891088" elapsed="0.005411">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:22.890832" elapsed="0.005827">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:22.890568" elapsed="0.006217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:22.873054" elapsed="0.023944">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:22.856650" elapsed="0.040578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:24.899909" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:24.899053" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:24.900694" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:24.900165" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:24.900097" elapsed="0.001187"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:24.924447" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:24.924728" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:24.924939" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:24.915309" elapsed="0.009692"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:24.925831" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:24.925195" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:24.930707" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:24.926302" elapsed="0.004594"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:24.925994" elapsed="0.004973"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:24.925155" elapsed="0.005855"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:24.931314" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:24.936906" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:24.932298" elapsed="0.004757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:24.932010" elapsed="0.005228">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:24.931757" elapsed="0.005625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:24.914448" elapsed="0.023144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:24.898091" elapsed="0.039729">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:26.940563" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:26.939674" elapsed="0.000959"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:26.941407" elapsed="0.000425"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:26.940810" elapsed="0.001105"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:26.940764" elapsed="0.001200"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:26.965312" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:26.965608" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:26.965979" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:26.957794" elapsed="0.008257"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:26.967197" elapsed="0.000096"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:26.966355" elapsed="0.001026"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:26.973156" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:26.967789" elapsed="0.005502"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:26.967450" elapsed="0.005913"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:26.966299" elapsed="0.007108"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:26.973658" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:26.980870" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:26.974674" elapsed="0.006408">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:26.974430" elapsed="0.006917">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:26.974114" elapsed="0.007406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:26.956642" elapsed="0.025168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:26.938790" elapsed="0.043289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:28.984885" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:28.983954" elapsed="0.001006"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:28.985809" elapsed="0.000560"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:28.985178" elapsed="0.001276"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:28.985100" elapsed="0.001408"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:29.009978" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:29.010447" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:29.010662" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:29.001789" elapsed="0.008929"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:29.011599" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:29.010892" elapsed="0.000830"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:29.016804" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:29.012045" elapsed="0.004869"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:29.011775" elapsed="0.005213"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:29.010849" elapsed="0.006187"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:29.017359" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:29.023956" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:29.018419" elapsed="0.005695">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:29.018105" elapsed="0.006227">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:29.017834" elapsed="0.006633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:29.000826" elapsed="0.023861">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:28.983044" elapsed="0.041852">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:31.027650" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:31.026788" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:31.028455" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:31.027885" elapsed="0.001058"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:31.027841" elapsed="0.001152"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:31.051768" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:31.052050" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:31.052302" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:31.042944" elapsed="0.009413"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:31.053104" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:31.052517" elapsed="0.000762"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:31.057926" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:31.053580" elapsed="0.004449"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:31.053329" elapsed="0.004770"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:31.052478" elapsed="0.005698"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:31.058450" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:31.064203" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:31.059440" elapsed="0.004937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:31.059174" elapsed="0.005348">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:31.058888" elapsed="0.005757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:31.042088" elapsed="0.022760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:31.025909" elapsed="0.039254">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:33.067831" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:33.066967" elapsed="0.000929"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:33.068692" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:33.068066" elapsed="0.001173"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:33.068023" elapsed="0.001269"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:33.094185" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:33.094508" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:33.094734" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:33.084982" elapsed="0.009820"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:33.095688" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:33.095007" elapsed="0.000795"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:33.101681" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:33.096108" elapsed="0.005713"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:33.095852" elapsed="0.006063"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:33.094963" elapsed="0.007012"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:33.102356" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:33.108302" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:33.103468" elapsed="0.005033">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:33.103105" elapsed="0.005552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:33.102822" elapsed="0.005960">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:33.084044" elapsed="0.025057">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:33.066079" elapsed="0.043305">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:35.111374" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:35.110756" elapsed="0.000663"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:35.111908" elapsed="0.000313"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:35.111542" elapsed="0.000734"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:35.111512" elapsed="0.000799"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:35.130259" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:35.130463" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:35.130595" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:35.121960" elapsed="0.008670"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:35.131155" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:35.130740" elapsed="0.000512"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:35.134389" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:35.131461" elapsed="0.002997"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:35.131287" elapsed="0.003217"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:35.130713" elapsed="0.003821"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:35.134702" elapsed="0.000222"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:35.138702" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:35.135385" elapsed="0.003423">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:35.135212" elapsed="0.003698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:35.134999" elapsed="0.004069">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:35.121408" elapsed="0.017845">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:35.110107" elapsed="0.029288">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:37.142097" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:37.141253" elapsed="0.000967"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:37.142905" elapsed="0.000455"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:37.142393" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:37.142350" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:37.166705" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:37.166988" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:37.167230" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:37.157632" elapsed="0.009653"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:37.168029" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:37.167444" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:37.172825" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:37.168498" elapsed="0.004432"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:37.168243" elapsed="0.004755"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:37.167404" elapsed="0.005639"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:37.173341" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:37.178891" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:37.174331" elapsed="0.004733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:37.174039" elapsed="0.005315">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:37.173782" elapsed="0.005704">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:37.156772" elapsed="0.022921">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:37.140375" elapsed="0.039516">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:39.182655" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:39.181770" elapsed="0.000951"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:39.183506" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:39.182895" elapsed="0.001107"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:39.182853" elapsed="0.001201"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:39.207455" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:39.207741" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:39.207961" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:39.198594" elapsed="0.009419"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:39.208841" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:39.208235" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:39.213739" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:39.209331" elapsed="0.004511"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:39.209005" elapsed="0.004906"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:39.208192" elapsed="0.005763"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:39.214258" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:39.219790" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:39.215255" elapsed="0.004778">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:39.214957" elapsed="0.005275">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:39.214702" elapsed="0.005657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:39.197679" elapsed="0.022889">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:39.180827" elapsed="0.039938">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:41.223421" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:41.222558" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:41.224193" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:41.223647" elapsed="0.001021"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:41.223605" elapsed="0.001113"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:41.247866" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:41.248200" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:41.248394" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:41.238531" elapsed="0.009915"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:41.249268" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:41.248601" elapsed="0.000781"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:41.254026" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:41.249686" elapsed="0.004572"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:41.249431" elapsed="0.004899"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:41.248564" elapsed="0.005811"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:41.254625" elapsed="0.000327"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:41.262781" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:41.255596" elapsed="0.007330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:41.255358" elapsed="0.007714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:41.255058" elapsed="0.008193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:41.237668" elapsed="0.025789">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:41.221717" elapsed="0.041932">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:43.266327" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:43.265459" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:43.267076" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:43.266561" elapsed="0.001057"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:43.266520" elapsed="0.001148"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:43.289957" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:43.290320" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:43.290605" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:43.281592" elapsed="0.009066"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:43.291522" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:43.290819" elapsed="0.000849"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:43.297306" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:43.292063" elapsed="0.005364"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:43.291731" elapsed="0.005776"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:43.290780" elapsed="0.006777"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:43.297854" elapsed="0.000457"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:43.304172" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:43.299038" elapsed="0.005300">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:43.298733" elapsed="0.005760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:43.298441" elapsed="0.006177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:43.280724" elapsed="0.024107">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:43.264591" elapsed="0.040624">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:45.307911" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:45.307045" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:45.308840" elapsed="0.000720"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:45.308263" elapsed="0.001450"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:45.308107" elapsed="0.001691"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:45.333081" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:45.333527" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:45.333753" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:45.324472" elapsed="0.009335"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:45.334668" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:45.334004" elapsed="0.000780"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:45.341304" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:45.335084" elapsed="0.006385"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:45.334833" elapsed="0.006730"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:45.333933" elapsed="0.007690"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:45.341957" elapsed="0.000507"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:45.348722" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:45.343357" elapsed="0.005517">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:45.342963" elapsed="0.006057">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:45.342617" elapsed="0.006583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:45.323601" elapsed="0.025816">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:45.306202" elapsed="0.043411">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:47.352450" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:47.351518" elapsed="0.000996"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:47.353242" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:47.352684" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:47.352641" elapsed="0.001142"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:47.376501" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:47.376786" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:47.376980" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:47.367871" elapsed="0.009162"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:47.377843" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:47.377249" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:47.382717" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:47.378306" elapsed="0.004514"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:47.378006" elapsed="0.004913"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:47.377206" elapsed="0.005758"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:47.383256" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:47.389282" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:47.384247" elapsed="0.005186">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:47.383954" elapsed="0.005629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:47.383700" elapsed="0.006007">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:47.366952" elapsed="0.022959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:47.350668" elapsed="0.039577">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:49.392922" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:49.392061" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:49.393721" elapsed="0.000456"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:49.393208" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:49.393162" elapsed="0.001146"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:49.417148" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:49.417446" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:49.417642" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:49.408413" elapsed="0.009283"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:49.418504" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:49.417856" elapsed="0.000766"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:49.423335" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:49.418928" elapsed="0.004513"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:49.418672" elapsed="0.004840"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:49.417818" elapsed="0.005737"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:49.423843" elapsed="0.000493"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:49.429805" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:49.425219" elapsed="0.004774">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:49.424832" elapsed="0.005375">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:49.424453" elapsed="0.005885">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:49.407550" elapsed="0.023093">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:49.391207" elapsed="0.039639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:51.433939" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:51.433010" elapsed="0.001017"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:51.434797" elapsed="0.000514"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:51.434262" elapsed="0.001136"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:51.434216" elapsed="0.001235"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:51.459195" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:51.459518" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:51.459769" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:51.450518" elapsed="0.009307"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:51.460738" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:51.460005" elapsed="0.000860"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:51.465835" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:51.461338" elapsed="0.004602"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:51.460919" elapsed="0.005092"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:51.459961" elapsed="0.006093"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:51.466362" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:51.471924" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:51.467369" elapsed="0.004740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:51.467068" elapsed="0.005244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:51.466811" elapsed="0.005722">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:51.449489" elapsed="0.023260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:51.431970" elapsed="0.040980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:53.475811" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:53.474897" elapsed="0.000979"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:53.476618" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:53.476049" elapsed="0.001156"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:53.476006" elapsed="0.001281"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:53.503389" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:53.503703" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:53.503906" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:53.493899" elapsed="0.010075"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:53.504863" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:53.504223" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:53.510058" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:53.505378" elapsed="0.004850"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:53.505030" elapsed="0.005270"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:53.504177" elapsed="0.006166"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:53.510596" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:53.517207" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:53.511704" elapsed="0.005664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:53.511456" elapsed="0.006191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:53.511169" elapsed="0.006631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:53.492930" elapsed="0.025104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:53.473937" elapsed="0.044411">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:55.520972" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:55.520154" elapsed="0.000883"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:55.521774" elapsed="0.000460"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:55.521258" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:55.521214" elapsed="0.001148"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:55.544906" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:55.545307" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:55.545533" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:55.536296" elapsed="0.009295"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:55.546475" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:55.545773" elapsed="0.000858"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:55.551543" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:55.546953" elapsed="0.004697"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:55.546684" elapsed="0.005038"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:55.545728" elapsed="0.006038"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:55.552025" elapsed="0.000401"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:55.557793" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:55.553049" elapsed="0.004989">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:55.552799" elapsed="0.005450">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:55.552536" elapsed="0.005841">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:55.535424" elapsed="0.023162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:55.519296" elapsed="0.039492">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:57.561477" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:57.560621" elapsed="0.000922"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:57.562278" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:57.561711" elapsed="0.001056"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:57.561668" elapsed="0.001148"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:57.585868" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:57.586248" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:57.586489" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:57.577316" elapsed="0.009229"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:57.587434" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:57.586731" elapsed="0.000822"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:57.592505" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:57.587864" elapsed="0.004862"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:57.587604" elapsed="0.005223"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:57.586687" elapsed="0.006209"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:57.593230" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:57.599244" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:57.594317" elapsed="0.005096">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:57.593998" elapsed="0.005572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:57.593706" elapsed="0.005994">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:57.576431" elapsed="0.023484">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:57.559750" elapsed="0.040441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:50:59.602952" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:50:59.602020" elapsed="0.000996"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:50:59.603756" elapsed="0.000467"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:59.603242" elapsed="0.001061"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:59.603199" elapsed="0.001153"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:50:59.627272" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:50:59.627558" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:50:59.627843" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:50:59.618909" elapsed="0.008988"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:50:59.628709" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:50:59.628081" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:50:59.633597" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:50:59.629176" elapsed="0.004525"/>
</kw>
<status status="PASS" start="2026-09-05T23:50:59.628873" elapsed="0.004899"/>
</branch>
<status status="PASS" start="2026-09-05T23:50:59.628018" elapsed="0.005797"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:50:59.634089" elapsed="0.000371"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:50:59.640056" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:50:59.635083" elapsed="0.005153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:50:59.634823" elapsed="0.005563">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:50:59.634568" elapsed="0.005940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:50:59.618052" elapsed="0.022656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:59.601167" elapsed="0.039735">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:01.643672" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:01.642757" elapsed="0.000980"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:01.644519" elapsed="0.000418"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:01.643912" elapsed="0.001132"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:01.643868" elapsed="0.001230"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:01.668583" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:01.668974" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:01.669241" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:01.659643" elapsed="0.009654"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:01.670145" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:01.669473" elapsed="0.000795"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:01.675056" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:01.670578" elapsed="0.004620"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:01.670318" elapsed="0.004956"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:01.669429" elapsed="0.005892"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:01.675588" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:01.681358" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:01.676621" elapsed="0.004894">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:01.676367" elapsed="0.005303">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:01.676071" elapsed="0.005728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:01.658689" elapsed="0.023342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:01.641855" elapsed="0.040410">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:03.684966" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:03.684151" elapsed="0.000903"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:03.685767" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:03.685256" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:03.685211" elapsed="0.001149"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:03.710797" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:03.711158" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:03.711403" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:03.701908" elapsed="0.009554"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:03.712360" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:03.711644" elapsed="0.000843"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:03.717648" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:03.712811" elapsed="0.004942"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:03.712542" elapsed="0.005281"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:03.711600" elapsed="0.006271"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:03.718175" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:03.723757" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:03.719181" elapsed="0.004727">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:03.718883" elapsed="0.005194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:03.718625" elapsed="0.005610">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:03.700949" elapsed="0.023492">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:03.683257" elapsed="0.041536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:05.727565" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:05.726688" elapsed="0.000942"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:05.728375" elapsed="0.000409"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:05.727808" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:05.727764" elapsed="0.001150"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:05.751952" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:05.752346" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:05.752556" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:05.742945" elapsed="0.009662"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:05.753461" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:05.752781" elapsed="0.000796"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:05.758300" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:05.753878" elapsed="0.004525"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:05.753628" elapsed="0.004845"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:05.752740" elapsed="0.005777"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:05.758767" elapsed="0.000384"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:05.764790" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:05.759774" elapsed="0.005163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:05.759525" elapsed="0.005590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:05.759265" elapsed="0.006009">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:05.742053" elapsed="0.023527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:05.725784" elapsed="0.039997">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:07.769309" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:07.767920" elapsed="0.001490"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:07.770606" elapsed="0.000578"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:07.769682" elapsed="0.001595"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:07.769611" elapsed="0.001725"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:07.796399" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:07.796722" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:07.796934" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:07.787255" elapsed="0.009767"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:07.797893" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:07.797228" elapsed="0.000824"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:07.804264" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:07.798415" elapsed="0.006001"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:07.798107" elapsed="0.006415"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:07.797185" elapsed="0.007410"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:07.805022" elapsed="0.000537"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:07.812042" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:07.806492" elapsed="0.005827">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:07.806073" elapsed="0.006479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:07.805701" elapsed="0.007174">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:07.786259" elapsed="0.027038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:07.766882" elapsed="0.046748">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:09.816662" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:09.815560" elapsed="0.001175"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:09.817576" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:09.816909" elapsed="0.001183"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:09.816866" elapsed="0.001305"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:09.842983" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:09.843431" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:09.843717" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:09.833334" elapsed="0.010455"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:09.844865" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:09.844047" elapsed="0.001005"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:09.850541" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:09.845439" elapsed="0.005375"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:09.845115" elapsed="0.005775"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:09.843990" elapsed="0.006943"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:09.851243" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:09.856823" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:09.852290" elapsed="0.004706">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:09.852007" elapsed="0.005269">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:09.851694" elapsed="0.005713">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:09.832084" elapsed="0.025601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:09.814647" elapsed="0.043352">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:11.860889" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:11.859969" elapsed="0.001008"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:11.861731" elapsed="0.000479"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:11.861186" elapsed="0.001106"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:11.861111" elapsed="0.001251"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:11.885561" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:11.885864" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:11.886098" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:11.876589" elapsed="0.009612"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:11.887007" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:11.886376" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:11.892080" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:11.887511" elapsed="0.004704"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:11.887235" elapsed="0.005053"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:11.886335" elapsed="0.005996"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:11.892603" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:11.898892" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:11.893644" elapsed="0.005558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:11.893375" elapsed="0.005985">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:11.893081" elapsed="0.006406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:11.875689" elapsed="0.024038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:11.859056" elapsed="0.040954">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:13.902847" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:13.901907" elapsed="0.001007"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:13.903707" elapsed="0.000491"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:13.903152" elapsed="0.001126"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:13.903074" elapsed="0.001256"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:13.928425" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:13.928736" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:13.928969" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:13.918680" elapsed="0.010346"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:13.929963" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:13.929239" elapsed="0.000849"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:13.935183" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:13.930454" elapsed="0.004942"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:13.930172" elapsed="0.005301"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:13.929194" elapsed="0.006323"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:13.935809" elapsed="0.000419"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:13.941644" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:13.936902" elapsed="0.004898">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:13.936615" elapsed="0.005382">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:13.936343" elapsed="0.005820">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:13.917731" elapsed="0.024667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:13.900990" elapsed="0.041619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:15.945637" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:15.944660" elapsed="0.001048"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:15.946540" elapsed="0.000517"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:15.945891" elapsed="0.001299"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:15.945840" elapsed="0.001403"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:15.972379" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:15.972688" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:15.973109" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:15.963323" elapsed="0.009906"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:15.974085" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:15.973428" elapsed="0.000813"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:15.978993" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:15.974588" elapsed="0.004519"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:15.974291" elapsed="0.004921"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:15.973384" elapsed="0.005873"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:15.979509" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:15.985245" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:15.980525" elapsed="0.004881">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:15.980279" elapsed="0.005277">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:15.979987" elapsed="0.005692">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:15.962420" elapsed="0.023462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:15.943617" elapsed="0.042487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:17.988796" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:17.987965" elapsed="0.000894"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:17.989615" elapsed="0.000429"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:17.989052" elapsed="0.001098"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:17.989011" elapsed="0.001190"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:18.013158" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:18.013541" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:18.013743" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:18.003976" elapsed="0.009821"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:18.014637" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:18.013990" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:18.022254" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:18.015087" elapsed="0.007274"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:18.014804" elapsed="0.007629"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:18.013949" elapsed="0.008529"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:18.022730" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:18.028536" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:18.023730" elapsed="0.004958">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:18.023485" elapsed="0.005350">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:18.023229" elapsed="0.005756">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:18.003140" elapsed="0.026079">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:17.987084" elapsed="0.042329">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:20.032107" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:20.031258" elapsed="0.000947"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:20.032914" elapsed="0.000445"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:20.032380" elapsed="0.001069"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:20.032336" elapsed="0.001168"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:20.057197" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:20.057501" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:20.057701" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:20.047495" elapsed="0.010259"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:20.058612" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:20.057957" elapsed="0.000774"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:20.063465" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:20.059060" elapsed="0.004510"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:20.058782" elapsed="0.004859"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:20.057914" elapsed="0.005770"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:20.063961" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:20.069634" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:20.064970" elapsed="0.004816">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:20.064699" elapsed="0.005256">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:20.064441" elapsed="0.005639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:20.046594" elapsed="0.023723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:20.030391" elapsed="0.040318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:22.073385" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:22.072524" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:22.074186" elapsed="0.000409"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:22.073618" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:22.073577" elapsed="0.001147"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:22.097684" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:22.098002" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:22.098249" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:22.089169" elapsed="0.009134"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:22.099078" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:22.098467" elapsed="0.000757"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:22.103836" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:22.099529" elapsed="0.004435"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:22.099274" elapsed="0.004761"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:22.098427" elapsed="0.005653"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:22.104361" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:22.109988" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:22.105358" elapsed="0.004811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:22.105083" elapsed="0.005236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:22.104804" elapsed="0.005638">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:22.088290" elapsed="0.022457">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:22.071634" elapsed="0.039340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:24.113575" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:24.112702" elapsed="0.000936"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:24.114363" elapsed="0.000402"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:24.113806" elapsed="0.001061"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:24.113764" elapsed="0.001168"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:24.138056" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:24.138382" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:24.138587" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:24.129067" elapsed="0.009573"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:24.139525" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:24.138817" elapsed="0.000829"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:24.144559" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:24.139984" elapsed="0.004677"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:24.139696" elapsed="0.005035"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:24.138774" elapsed="0.006002"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:24.145058" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:24.151218" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:24.146055" elapsed="0.005328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:24.145783" elapsed="0.005755">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:24.145529" elapsed="0.006222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:24.128187" elapsed="0.023803">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:24.111868" elapsed="0.040349">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:26.155098" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:26.154203" elapsed="0.000994"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:26.155986" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:26.155383" elapsed="0.001164"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:26.155334" elapsed="0.001268"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:26.179974" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:26.180332" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:26.180541" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:26.171238" elapsed="0.009359"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:26.181475" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:26.180767" elapsed="0.000834"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:26.186495" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:26.181943" elapsed="0.004678"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:26.181655" elapsed="0.005040"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:26.180725" elapsed="0.006015"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:26.187022" elapsed="0.000383"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:26.193000" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:26.188092" elapsed="0.005101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:26.187808" elapsed="0.005708">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:26.187518" elapsed="0.006131">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:26.170324" elapsed="0.023590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:26.153236" elapsed="0.040926">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:28.196889" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:28.196020" elapsed="0.000937"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:28.197679" elapsed="0.000487"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:28.197158" elapsed="0.001092"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:28.197086" elapsed="0.001217"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:28.223606" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:28.223932" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:28.224191" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:28.214252" elapsed="0.009995"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:28.225153" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:28.224484" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:28.229962" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:28.225577" elapsed="0.004489"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:28.225323" elapsed="0.004844"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:28.224441" elapsed="0.005773"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:28.230469" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:28.236088" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:28.231475" elapsed="0.004892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:28.231228" elapsed="0.005295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:28.230938" elapsed="0.005708">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:28.213342" elapsed="0.023533">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:28.195176" elapsed="0.041900">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:30.240042" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:30.239088" elapsed="0.001024"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:30.240911" elapsed="0.000473"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:30.240332" elapsed="0.001137"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:30.240286" elapsed="0.001237"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:30.267097" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:30.267468" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:30.267680" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:30.256904" elapsed="0.010832"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:30.268601" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:30.267936" elapsed="0.000785"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:30.273906" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:30.269080" elapsed="0.005067"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:30.268775" elapsed="0.005452"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:30.267895" elapsed="0.006382"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:30.274551" elapsed="0.000382"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:30.281232" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:30.275620" elapsed="0.005771">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:30.275357" elapsed="0.006196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:30.275049" elapsed="0.006641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:30.255943" elapsed="0.025996">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:30.238071" elapsed="0.044114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:32.284996" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:32.284106" elapsed="0.000955"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:32.285808" elapsed="0.000444"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:32.285267" elapsed="0.001064"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:32.285224" elapsed="0.001157"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:32.308926" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:32.309257" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:32.309543" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:32.300313" elapsed="0.009284"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:32.310411" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:32.309758" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:32.315291" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:32.310856" elapsed="0.004538"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:32.310575" elapsed="0.004889"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:32.309719" elapsed="0.005790"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:32.315764" elapsed="0.000395"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:32.321521" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:32.316797" elapsed="0.004873">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:32.316532" elapsed="0.005311">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:32.316271" elapsed="0.005701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:32.299432" elapsed="0.022780">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:32.283202" elapsed="0.039215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:34.325044" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:34.324216" elapsed="0.000893"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:34.325876" elapsed="0.000440"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:34.325307" elapsed="0.001086"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:34.325265" elapsed="0.001178"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:34.349852" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:34.350273" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:34.350496" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:34.340823" elapsed="0.009727"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:34.351362" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:34.350711" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:34.356200" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:34.351817" elapsed="0.004489"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:34.351524" elapsed="0.004852"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:34.350671" elapsed="0.005751"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:34.356671" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:34.362369" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:34.357680" elapsed="0.004842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:34.357435" elapsed="0.005233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:34.357175" elapsed="0.005641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:34.339944" elapsed="0.023077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:34.323368" elapsed="0.039879">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:36.365970" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:36.365097" elapsed="0.000936"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:36.366776" elapsed="0.000442"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:36.366238" elapsed="0.001062"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:36.366193" elapsed="0.001158"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:36.390381" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:36.390721" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:36.391005" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:36.381477" elapsed="0.009585"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:36.391969" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:36.391288" elapsed="0.000861"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:36.398303" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:36.392574" elapsed="0.005858"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:36.392219" elapsed="0.006292"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:36.391241" elapsed="0.007320"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:36.398889" elapsed="0.000445"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:36.405114" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:36.400059" elapsed="0.005253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:36.399779" elapsed="0.005684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:36.399465" elapsed="0.006121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:36.380555" elapsed="0.025263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:36.364233" elapsed="0.041877">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:38.408777" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:38.407908" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:38.409554" elapsed="0.000428"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:38.409012" elapsed="0.001048"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:38.408968" elapsed="0.001142"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:38.432814" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:38.433097" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:38.433342" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:38.424250" elapsed="0.009144"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:38.434228" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:38.433554" elapsed="0.000789"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:38.439021" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:38.434652" elapsed="0.004503"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:38.434392" elapsed="0.004836"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:38.433516" elapsed="0.005757"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:38.439523" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:38.445176" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:38.440518" elapsed="0.004812">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:38.440274" elapsed="0.005204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:38.439984" elapsed="0.005619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:38.423376" elapsed="0.022549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:38.407045" elapsed="0.039117">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-05T23:51:40.448889" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-05T23:51:40.447947" elapsed="0.001011"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-05T23:51:40.449740" elapsed="0.000465"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:40.449168" elapsed="0.001123"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:40.449090" elapsed="0.001254"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:40.475446" level="INFO">GET Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:40.475763" level="INFO">GET Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-05T23:51:40.475991" level="INFO">${resp} = &lt;Response [200]&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-09-05T23:51:40.465698" elapsed="0.010348"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-05T23:51:40.476926" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-05T23:51:40.476252" elapsed="0.000792"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:40.481863" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:40.477409" elapsed="0.004557"/>
</kw>
<status status="PASS" start="2026-09-05T23:51:40.477095" elapsed="0.004940"/>
</branch>
<status status="PASS" start="2026-09-05T23:51:40.476209" elapsed="0.005870"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-05T23:51:40.482362" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:40.488000" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:40.483372" elapsed="0.004811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-05T23:51:40.483090" elapsed="0.005245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-05T23:51:40.482833" elapsed="0.005776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</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-09-05T23:51:40.464844" elapsed="0.024004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:40.447032" elapsed="0.042014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<msg time="2026-09-05T23:51:40.489264" level="FAIL">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-05T23:50:08.565061" elapsed="91.924418">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:40.489870" elapsed="0.000046"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:40.491564" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-05T23:51:40.820669" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:51:40.821028" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:51:40.821156" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:51:40.821247" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:40.491212" elapsed="0.330082"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:40.822364" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:40.821727" elapsed="0.000722"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:40.823107" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-05T23:51:41.133095" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:51:41.133500" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:51:41.133590" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:51:41.133674" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:40.822766" elapsed="0.310981"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.134567" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-05T23:51:41.201018" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:41.201392" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-05T23:51:41.201489" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:51:41.201577" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.134170" elapsed="0.067459"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.202322" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-05T23:51:41.256854" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.202041" elapsed="0.054937"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:41.270330" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:41.270424" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:41.270602" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:51:41.257436" elapsed="0.013218"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:41.278651" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 path_url=/rests/data/netconf-keystore:keystore 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gdvf6l85gm42s2x3v54lkjmr5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:41.278968" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:51:41.279221" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:51:41.270974" elapsed="0.008304"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-05T23:51:40.490539" elapsed="0.788889"/>
</kw>
<doc>A Rogue Device will fail to callhome and wont be able to mount because the keys are not added in whitelist.
FAILED_NOT_ALLOWED should be the device status.</doc>
<status status="FAIL" start="2026-09-05T23:50:07.889029" elapsed="93.390504">Keyword 'NetconfCallHome.Check Device Status' failed after retrying for 1 minute 30 seconds. The last error was: '{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGOgRNDcjdkN6W37elNDzIktHy7OZiLhiwWd1bLw0Gp9exrIwImE6W0cxpkIPKY+6B3BBqMOnMW47XQno1eBz4EcrCW0kwWT0D5iJC2K6C3RfDVRPHaje65PFSVDhc9URzMj6MfARVMAdedpI/jEg4uVkbJ1ujoDzMxt8N8o3+cBPg/92kpJf3XYCaSvGNRPHUfZu7cBDqDsAoLWFjYlJEYV0ZBunvA9dlXO/9L/o0U0p1ZswMxqbL+w5C9MKZPzYKrQPJo1O5pnrQ+S9LUQ8p617ZOr1ldD4eQz2iDDEOiRuDU8Drg2ByLaWqBrSHyOKf+GcidnCMu5ZwHMqRlcI/","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</test>
<test id="s1-s1-t7" name="CallHome over TLS with correct certificate and key" line="131">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:41.283200" level="INFO">Creating Session using : alias=session, url=http://10.30.170.144:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71d22e1b1510&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-09-05T23:51:41.282343" elapsed="0.001198"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.284726" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-05T23:51:41.308542" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.283869" elapsed="0.024797"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.309265" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-05T23:51:41.563046" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.308998" elapsed="0.254286"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.563975" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-05T23:51:41.617232" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:41.617492" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC71jp4/HDzW9/NcdIBUHAAKEZU5qFccDezV/jSit6+mFuOX0afu1eeBl6V34/GwAl2Ffacg6suk5jrdYM5cyFC2K8o8RLtR0CupN9OUS5rBlIbu3UCj+/1S+LDZZ4ijT1kBvtTtkJn+CEa+dz76PmSHgDiOlBkNKjpPHuB4ubn...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.563688" elapsed="0.053858"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-05T23:51:41.626311" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC71jp4/HDzW9/NcdIBUHAAKEZU5qFccDezV/jSit6+mFuOX0afu1eeBl6V34/GwAl2Ffacg6suk5jrdYM5cyFC2K8o8RLtR0CupN9OUS5rBlIbu3UCj+/1S+LDZZ4ijT1kBvtTtkJn+CEa+dz76PmSHgDiOlBkNKjpPHuB4ubn...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-05T23:51:41.617956" elapsed="0.008454"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-05T23:51:41.281728" elapsed="0.344811"/>
</kw>
<kw name="Apply TLS-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Generate certificates for TLS configuration" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.628681" level="INFO">Executing command 'rm -rf ./certs &amp;&amp; mkdir ./certs'.</msg>
<msg time="2026-09-05T23:51:41.668686" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:41.668905" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>rm -rf ./certs &amp;&amp; mkdir ./certs</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.628481" elapsed="0.040472"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.719340" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/x509_v3.cfg' -&gt; '/home/jenkins/./x509_v3.cfg'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/x509_v3.cfg</arg>
<arg>./x509_v3.cfg</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:51:41.669294" elapsed="0.050170"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.719990" level="INFO">Executing command 'openssl genrsa -out ./certs/ca.key 2048'.</msg>
<msg time="2026-09-05T23:51:41.996965" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:41.997278" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl genrsa -out ./certs/ca.key 2048</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.719782" elapsed="0.277552"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:41.997944" level="INFO">Executing command 'openssl req -x509 -new -extensions v3_ca -nodes -key ./certs/ca.key -sha256 -days 365 -subj "/C=US/ST=CA/L=Netopeer/O=netopeerCA/CN=netopeerCA" -out ./certs/ca.pem'.</msg>
<msg time="2026-09-05T23:51:42.054878" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.055099" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl req -x509 -new -extensions v3_ca -nodes -key ./certs/ca.key -sha256 -days 365 -subj "/C=US/ST=CA/L=Netopeer/O=netopeerCA/CN=netopeerCA" -out ./certs/ca.pem</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:41.997667" elapsed="0.057534"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.055774" level="INFO">Executing command 'openssl genrsa -out ./certs/server.key 2048'.</msg>
<msg time="2026-09-05T23:51:42.287029" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.287259" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl genrsa -out ./certs/server.key 2048</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.055534" elapsed="0.231751"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.287652" level="INFO">Executing command 'openssl req -new -sha256 -key ./certs/server.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-server" -out ./certs/server.csr'.</msg>
<msg time="2026-09-05T23:51:42.342671" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.342974" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl req -new -sha256 -key ./certs/server.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-server" -out ./certs/server.csr</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.287508" elapsed="0.055492"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.343322" level="INFO">Executing command 'openssl x509 -req -in ./certs/server.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/server.crt -days 365 -sha256'.</msg>
<msg time="2026-09-05T23:51:42.406603" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.406824" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl x509 -req -in ./certs/server.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/server.crt -days 365 -sha256</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.343198" elapsed="0.063654"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.407223" level="INFO">Executing command 'openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub'.</msg>
<msg time="2026-09-05T23:51:42.470671" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.470939" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.407063" elapsed="0.063912"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.471477" level="INFO">Executing command 'openssl genrsa -out ./certs/client.key 2048'.</msg>
<msg time="2026-09-05T23:51:42.687819" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.688038" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl genrsa -out ./certs/client.key 2048</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.471298" elapsed="0.216765"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.688459" level="INFO">Executing command 'openssl req -new -sha256 -key ./certs/client.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-client" -out ./certs/client.csr'.</msg>
<msg time="2026-09-05T23:51:42.750770" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.750961" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl req -new -sha256 -key ./certs/client.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-client" -out ./certs/client.csr</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.688309" elapsed="0.062698"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.751529" level="INFO">Executing command 'openssl x509 -req -in ./certs/client.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/client.crt -days 1024 -sha256'.</msg>
<msg time="2026-09-05T23:51:42.810553" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.810770" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl x509 -req -in ./certs/client.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/client.crt -days 1024 -sha256</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.751329" elapsed="0.059489"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.811337" level="INFO">Executing command 'mv ./certs ./configuration-files/certs'.</msg>
<msg time="2026-09-05T23:51:42.864407" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.864603" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>mv ./certs ./configuration-files/certs</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.811097" elapsed="0.053555"/>
</kw>
<doc>Generates certificates for 2-way TLS authentication (ca, server, client)</doc>
<status status="PASS" start="2026-09-05T23:51:41.627918" elapsed="1.236892"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.922110" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/tls/ietf-keystore.xml' -&gt; '/home/jenkins/configuration-files/ietf-keystore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/tls/ietf-keystore.xml</arg>
<arg>configuration-files/ietf-keystore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:51:42.865077" elapsed="0.057183"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.939451" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/tls/ietf-truststore.xml' -&gt; '/home/jenkins/configuration-files/ietf-truststore.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/tls/ietf-truststore.xml</arg>
<arg>configuration-files/ietf-truststore.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:51:42.922634" elapsed="0.016935"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.951838" level="INFO">'/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/tls/ietf-netconf-server.xml' -&gt; '/home/jenkins/configuration-files/ietf-netconf-server.xml'</msg>
<arg>/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/libraries/../variables/netconf/callhome/configuration-files/tls/ietf-netconf-server.xml</arg>
<arg>configuration-files/ietf-netconf-server.xml</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="PASS" start="2026-09-05T23:51:42.939874" elapsed="0.012081"/>
</kw>
<doc>Upload netopeer2 configuration files needed for TLS transport</doc>
<status status="PASS" start="2026-09-05T23:51:41.627050" elapsed="1.325031"/>
</kw>
<kw name="Register keys and certificates in ODL controller" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:42.953712" level="INFO">Executing command 'cat ./configuration-files/certs/client.key'.</msg>
<msg time="2026-09-05T23:51:42.966765" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:42.966982" level="INFO">${pem-client-key} = -----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9TlfBTJc1SeQt
ahm5lSVxoN7W5i89L1heanDaBLLyfmgisKxH6Q1JBVj17EP+wWAKNu9nxWnzMnl+
2dXfbxQMn49uz7XJ4pgj2PqhzkSAm1WSPMZRkxJEFD...</msg>
<msg time="2026-09-05T23:51:42.967069" level="INFO">${stderr} = </msg>
<var>${pem-client-key}</var>
<var>${stderr}</var>
<arg>cat ./configuration-files/certs/client.key</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:42.953369" elapsed="0.013743"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-05T23:51:42.967775" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/add_keystore_entry.json"&gt;/w/workspace/netconf-csit-1node-callhome-only-vanadium/test/csit/variables/netconf/callhome/json/add_keystore_entry.json&lt;/a&gt;'.</msg>
<msg time="2026-09-05T23:51:42.968068" level="INFO">${template} = {
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "{pem-client-key}",
                "passphrase": ""
            }...</msg>
<var>${template}</var>
<arg>${ADD_KEYSTORE_ENTRY_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-05T23:51:42.967447" elapsed="0.000704"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-05T23:51:42.968976" level="INFO">${body} = {
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwg...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{pem-client-key}</arg>
<arg>${pem-client-key}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-05T23:51:42.968463" elapsed="0.000566"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:43.019846" level="INFO">POST Request : url=http://10.30.170.144:8181/rests/operations/netconf-keystore:add-keystore-entry 
 path_url=/rests/operations/netconf-keystore:add-keystore-entry 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '1906', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC9TlfBTJc1SeQt
ahm5lSVxoN7W5i89L1heanDaBLLyfmgisKxH6Q1JBVj17EP+wWAKNu9nxWnzMnl+
2dXfbxQMn49uz7XJ4pgj2PqhzkSAm1WSPMZRkxJEFDa4ed3SKjoDtPBcYD86H/Rs
OJF0FjISGiBzJrc40MIsgAyY2dHdDhQif7DBPw+Fj6pr3JoU+8PYpeu7GTT52N3K
XmoQ7wcBlveG0wXThmKB+Md0KNFPZvAsrN2V1zCh0tVJG+jogMstKOGrv3KOLk5U
oHZUND7qf9tWSABLIM2XX+mN+j4DzZ6VcWXL1gLakRXurbj6XouEqnrlGs8WFR/g
NUkyIvS5AgMBAAECggEAD16x/07BpCD4trs7lXbHkH84OIh942DZsui/euQQx2F+
APsJMdl5K6mUfHsPVjrLGmk1bN55aLZ7aNI07Cwvm4rE8YFJyDdulNKEHukJZMu3
2eS3UV44iHB/tOCoIu0swqpJLabe21BG3xaEsMEwlYmrgs3s6F8CtOw8mZht0p2z
IdmhH21GFGXQJqvigs/t6YklcF35zaILJiGikF7nzniKsVftJR9+JG0hTzAYSiyL
cWjdiF3qVdOZ7j/Z3Zs+SJmh1LUOSM+BpQ+EOlXMhDvvn3QpZ3Jbs4r0K2LmmvG4
RxjN3SMZVsKkCewzhfALEweSaUtBgyr9M1odMnXw0QKBgQDKEZ4iSyDrYEz8cnhp
/XHpZ5AAyH49Q8dm2DU1l8CmLzzBkHO4itzizUSRjZNdBx8DhQx4rmHC/CSCOqc9
BkVLKYTxEIYBUZxIBINNm7JAq9jvtgIMGHAVI8k8vOtKid1cVzpWCdsJOamIthSM
KcvIDrTybMCy7TkOMahVUSIMLQKBgQDv1LSS4oqbktChJz1accYmYxUZ4StLDwiG
xCD+G3xn+N9sSRgGjtNkGApj+dtikIEAuCl3RX6hw5v1JoWZ3jvj5pXSkY85oFz7
8RYe9hbCoh/UtNO+nvO7fL8N44edUQc+ya+ItlbYPv/C4to/hfk9a1fyj9im5F+K
FoD+oNEGPQKBgFx4eXxKEzODq1dvbwlZ8VIVkYG6PoL8zHiVAqyW2JN0VIJj/4D5
EyI7O2C8gC53PssWjOGBM73OM0rhWn0DrJw70NmcbSaXWURfxFK0qHsN6UWxbfhp
ComyCbpg3fALbSB/znNnKTRsjdfBM1/9FINlr4qtF/YJty12rgj1Cva1AoGBAI44
xRyV2zyGw9HNQ0TvU2JQP6MpNFM+hv/kLuyBwDSoEVZVwjmhWRpyZzcCZGb+6oFS
tMRWIdIr/cBTJ8cnUrzDcPV9/EFgJ8QAI+4YYUbqfZXV5fuUp1T3lRTXaQSRmIpT
cBTSjI2QTntzq5kgCb2yemUNiJzvsPhif/x/wXTBAoGAHsVEQ3VKXEsZaXEu7hrW
DdF5UHu7TYjnu9x9Me8LLUiP528I8jHudGwHeBkBbT6qpnogqpeyXCQVL7jWndxE
LW1bGRf27DpxZK0bqfg/Mlzp206G86ANIKSZK9OQDs+OXaZvSsXhOnNiM/eAmY2V
fHVGuxxqd6FlK451oVtUsds=
-----END PRIVATE KEY-----",
                "passphrase": ""
            }
        ]
    }
}
 
 </msg>
<msg time="2026-09-05T23:51:43.020187" level="INFO">POST Response : url=http://10.30.170.144:8181/rests/operations/netconf-keystore:add-keystore-entry 
 status=500, reason=Internal Server Error 
 headers={'Set-Cookie': 'JSESSIONID=node0r7t85hmrleyx1jlo2ke4asqvu6.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 04-Sep-2026 23:51:42 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Type': 'application/yang-data+json', 'Content-Length': '302'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "operation-failed",
        "error-info": "Unhandled private key class org.bouncycastle.asn1.pkcs.PrivateKeyInfo",
        "error-message": "Failed to decode private key tls-device-key",
        "error-type": "application"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-05T23:51:43.020434" level="INFO">${resp} = &lt;Response [500]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_url}:add-keystore-entry</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:51:42.969326" elapsed="0.051161"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-05T23:51:43.025834" level="FAIL">'[200, 201, 204]' does not contain '500'</msg>
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-05T23:51:43.020821" elapsed="0.005153">'[200, 201, 204]' does not contain '500'</status>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${client-key}</var>
<arg>client.key</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.026384" elapsed="0.000053"/>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${certificate-chain}</var>
<arg>client.crt</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.026853" elapsed="0.000048"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<var>${template}</var>
<arg>${ADD_PRIVATE_KEY_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.027190" elapsed="0.000043"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${template}</arg>
<arg>{client-key}</arg>
<arg>${client-key}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.027506" elapsed="0.000040"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${body}</arg>
<arg>{certificate-chain}</arg>
<arg>${certificate-chain}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.027841" elapsed="0.000040"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_url}:add-private-key</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.028167" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.028491" elapsed="0.000040"/>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${ca-certificate}</var>
<arg>ca.pem</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.028864" elapsed="0.000046"/>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${device-certificate}</var>
<arg>server.crt</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.029243" elapsed="0.000049"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<var>${template}</var>
<arg>${ADD_TRUSTED_CERTIFICATE}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.029541" elapsed="0.000040"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${template}</arg>
<arg>{ca-certificate}</arg>
<arg>${ca-certificate}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.029891" elapsed="0.000045"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${body}</arg>
<arg>{device-certificate}</arg>
<arg>${device-certificate}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.030250" elapsed="0.000043"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_url}:add-trusted-certificate</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.030552" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.030916" elapsed="0.000054"/>
</kw>
<doc>Register pre-configured netopeer2 certificates and key in ODL-netconf keystore</doc>
<status status="FAIL" start="2026-09-05T23:51:42.952744" elapsed="0.078482">'[200, 201, 204]' does not contain '500'</status>
</kw>
<kw name="Register TLS call-home device in ODL controller" owner="NetconfCallHome">
<arg>netopeer2</arg>
<arg>tls-device-key</arg>
<arg>tls-device-certificate</arg>
<doc>Registration call-home device with TLS transport</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.031600" elapsed="0.000046"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.031943" elapsed="0.000041"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>CONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.032332" elapsed="0.000041"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-05T23:51:43.032661" elapsed="0.000062"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:43.034332" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-05T23:51:43.362476" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:51:43.362873" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:51:43.362962" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:51:43.363048" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:43.033938" elapsed="0.329156"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-05T23:51:43.364336" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-05T23:51:43.363610" elapsed="0.000811"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:43.365075" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-05T23:51:43.727562" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-05T23:51:43.727935" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:51:43.728023" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-05T23:51:43.728104" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:43.364729" elapsed="0.363461"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:43.729020" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-05T23:51:43.811393" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:43.811615" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-05T23:51:43.811722" level="INFO">${stderr} = </msg>
<msg time="2026-09-05T23:51:43.811801" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:43.728593" elapsed="0.083358"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:43.812510" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-05T23:51:43.860799" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:43.812308" elapsed="0.048632"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:43.872392" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r7t85hmrleyx1jlo2ke4asqvu6.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:43.873866" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '361'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:params:xml:ns:yang:netconf-callhome-server"&gt;/a:netconf-callhome-server/a:allowed-devices&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:51:43.874186" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:51:43.861977" elapsed="0.012264"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:43.883348" level="INFO">DELETE Request : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 path_url=/rests/data/netconf-keystore:keystore 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r7t85hmrleyx1jlo2ke4asqvu6.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-05T23:51:43.883579" level="INFO">DELETE Response : url=http://10.30.170.144:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-09-05T23:51:43.883817" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-05T23:51:43.874604" elapsed="0.009265"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-05T23:51:43.033333" elapsed="0.850677"/>
</kw>
<doc>Using correct certificate and key pair should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-09-05T23:51:41.280058" elapsed="2.604049">'[200, 201, 204]' does not contain '500'</status>
</test>
<kw name="Suite Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Uninstall Docker Compose on tools system" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-05T23:51:43.887261" level="INFO">Executing command 'pip uninstall docker-compose'.</msg>
<msg time="2026-09-05T23:51:44.692303" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-05T23:51:44.692630" level="INFO">${stdout} = </msg>
<msg time="2026-09-05T23:51:44.692744" level="INFO">${stderr} = WARNING: Skipping docker-compose as it is not installed.</msg>
<msg time="2026-09-05T23:51:44.692828" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>pip uninstall docker-compose</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-05T23:51:43.886354" elapsed="0.806520"/>
</kw>
<doc>Uninstall docker-compose on tools system</doc>
<status status="PASS" start="2026-09-05T23:51:43.885892" elapsed="0.807161"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-09-05T23:51:44.693609" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-09-05T23:51:44.693416" elapsed="0.001027"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-09-05T23:51:44.694794" elapsed="0.000635"/>
</kw>
<doc>Tearing down the setup.</doc>
<status status="PASS" start="2026-09-05T23:51:43.885419" elapsed="0.810217"/>
</kw>
<doc>Test suite to verify callhome functionality over SSH transport protocol. Registration in OpenDaylight
Controller happens via restconf interface. Netopeer2-server docker container plays a role of the
netconf device with call-home feature. Docker-compose file is used to configure netopeer2 docker
container(netconf configuration templates, host-key).</doc>
<status status="FAIL" start="2026-09-05T23:43:42.075028" elapsed="482.620707"/>
</suite>
<status status="FAIL" start="2026-09-05T23:43:42.007253" elapsed="482.691193"/>
</suite>
<statistics>
<total>
<stat pass="1" fail="6" skip="0">All Tests</stat>
</total>
<tag>
</tag>
<suite>
<stat name="netconf-callhome.txt" id="s1" pass="1" fail="6" skip="0">netconf-callhome.txt</stat>
<stat name="Callhome" id="s1-s1" pass="1" fail="6" skip="0">netconf-callhome.txt.Callhome</stat>
</suite>
</statistics>
<errors>
</errors>
</robot>
