<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-10T23:10:42.332077" rpa="false" schemaversion="5">
<suite id="s1" name="netconf-gate-callhome.txt" source="/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/suites/netconf/callhome">
<suite id="s1-s1" name="Callhome" source="/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-10-10T23:10:42.751881" 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-10-10T23:10:42.751438" elapsed="0.000483"/>
</kw>
<kw name="Flexible_Mininet_Login" owner="SSHKeywords">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T23:10:42.754055" level="INFO">Length is 0.</msg>
<msg time="2026-10-10T23:10:42.754140" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-10T23:10:42.753529" elapsed="0.000637"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-10T23:10:42.754325" elapsed="0.000389"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-10T23:10:42.755501" level="INFO">Logging into '10.30.171.205:22' as 'jenkins'.</msg>
<msg time="2026-10-10T23:10:43.205962" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-198-generic x86_64)

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

 System information as of Sat Oct 10 23:10:00 UTC 2026

  System load:  0.19               Processes:             107
  Usage of /:   20.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.205
  Swap usage:   0%

 * Canonical Workshop gives developers fast, composable, reproducible, and
   secure developer environments that are perfect for agentic workflows.

   https://ubuntu.com/workshop

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-51161-111-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-10-10T23:10:42.755243" elapsed="0.450874"/>
</kw>
<msg time="2026-10-10T23:10:43.206242" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-10T23:10:42.754869" elapsed="0.451481"/>
</kw>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>delay=${delay}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-10T23:10:42.753099" elapsed="0.453387"/>
</kw>
<msg time="2026-10-10T23:10:43.206572" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Flexible SSH Login</arg>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-10T23:10:42.752620" elapsed="0.454022"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-10-10T23:10:42.752090" elapsed="0.454657"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-10-10T23:10:43.206821" elapsed="0.000058"/>
</return>
<msg time="2026-10-10T23:10:43.207069" 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-10-10T23:10:42.751025" elapsed="0.456079"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:43.207946" level="INFO">${netopeer_conn_id} = 1</msg>
<arg>${netopeer_conn_id}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:43.207407" elapsed="0.000597"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-10T23:10:43.211525" 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-10-10T23:10:43.208219" elapsed="0.003371"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Read Until Prompt" owner="SSHLibrary">
<msg time="2026-10-10T23:10:43.724681" 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
  0 8053k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0100 8053k  100 8053k    0     0  16.4M      0 --:--:-- --:--:-- --:--:-- 89.3M
[?2004h[jenkins@releng-51161-111-1-docker-0 ~]&gt;</msg>
<doc>Consumes and returns the server output until the prompt is found.</doc>
<status status="PASS" start="2026-10-10T23:10:43.212728" elapsed="0.512050"/>
</kw>
<msg time="2026-10-10T23:10:43.724891" 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-10-10T23:10:43.212239" elapsed="0.512681"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:43.725350" level="INFO">Executing command 'sudo chmod +x /usr/local/bin/docker-compose'.</msg>
<msg time="2026-10-10T23:10:43.748358" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:10:43.748479" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:10:43.748542" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:10:43.748584" 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-10-10T23:10:43.725126" elapsed="0.023480"/>
</kw>
<doc>Install docker-compose on tools system.</doc>
<status status="PASS" start="2026-10-10T23:10:42.749716" elapsed="0.999047"/>
</kw>
<kw name="Pull Netopeer2 Docker Image" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:43.749419" level="INFO">Executing command 'docker pull sysrepo/sysrepo-netopeer2:latest'.</msg>
<msg time="2026-10-10T23:10:51.546520" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:10:51.546918" level="INFO">${stdout} = latest: Pulling from sysrepo/sysrepo-netopeer2
399fb1102f3f: Pulling fs layer
d51af753c3d3: Pulling fs layer
fc878cd0a91c: Pulling fs layer
6154df8ff988: Pulling fs layer
fee5db0ff82f: Pulling fs laye...</msg>
<msg time="2026-10-10T23:10:51.547017" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:10:51.547099" 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-10-10T23:10:43.749259" elapsed="7.797890"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:51.548138" level="INFO">Executing command 'docker images'.</msg>
<msg time="2026-10-10T23:10:51.673246" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:10:51.673538" level="INFO">${stdout} = IMAGE                              ID             DISK USAGE   CONTENT SIZE   EXTRA
sysrepo/sysrepo-netopeer2:latest   36cc1d841c97        914MB          232MB        </msg>
<msg time="2026-10-10T23:10:51.673635" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:10:51.673717" 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-10-10T23:10:51.547723" elapsed="0.126041"/>
</kw>
<doc>Pulls the netopeer image from the docker repository.</doc>
<status status="PASS" start="2026-10-10T23:10:43.748960" elapsed="7.924977"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:10:51.723610" level="INFO">[chan 4] Opened sftp connection (server version 3)</msg>
<msg time="2026-10-10T23:10:51.737549" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/docker-compose.yaml' -&gt; '/home/jenkins//docker-compose.yaml'</msg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-10-10T23:10:51.674316" elapsed="0.063368"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:10:51.748234" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/init_configuration.sh' -&gt; '/home/jenkins//init_configuration.sh'</msg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-10-10T23:10:51.738056" elapsed="0.010306"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:51.749040" level="INFO">Executing command 'sed -i -e 's/ODL_SYSTEM_IP/10.30.171.136/g' docker-compose.yaml'.</msg>
<msg time="2026-10-10T23:10:51.762074" 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-10-10T23:10:51.748771" elapsed="0.013462"/>
</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-10-10T23:10:51.775278" elapsed="0.000830"/>
</kw>
<msg time="2026-10-10T23:10:51.776245" 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-10-10T23:10:51.774485" elapsed="0.001884"/>
</kw>
<arg>sulfur</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Compare ${lower_bound} to titanium and return 4334 if titanium is at least ${lower_bound},
return 6666 otherwise.</doc>
<status status="PASS" start="2026-10-10T23:10:51.773799" elapsed="0.002752"/>
</kw>
<msg time="2026-10-10T23:10:51.776635" 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-10-10T23:10:51.768078" elapsed="0.008662"/>
</kw>
<msg time="2026-10-10T23:10:51.776956" level="INFO">${netconf_cl_ssh_port} = 4334</msg>
<var>${netconf_cl_ssh_port}</var>
<arg>4334</arg>
<arg>6666</arg>
<doc>Compare sulfur to titanium and return ${value_if_true} if titanium is at least sulfur, return ${value_if_false} otherwise.</doc>
<status status="PASS" start="2026-10-10T23:10:51.767477" elapsed="0.009530"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:51.777669" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_SSH/4334/g' docker-compose.yaml'.</msg>
<msg time="2026-10-10T23:10:51.810005" 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-10-10T23:10:51.777405" elapsed="0.032728"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:51.810784" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml'.</msg>
<msg time="2026-10-10T23:10:51.858291" 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-10-10T23:10:51.810584" elapsed="0.047865"/>
</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-10-10T23:10:51.871027" elapsed="0.000803"/>
</kw>
<msg time="2026-10-10T23:10:51.871931" 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-10-10T23:10:51.870254" elapsed="0.001779"/>
</kw>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Compare ${lower_bound} to titanium and return "connection-status":"connected" if titanium is at least ${lower_bound},
return "netconf-node-topology:connection-status":"connected" otherwise.</doc>
<status status="PASS" start="2026-10-10T23:10:51.869621" elapsed="0.002691"/>
</kw>
<msg time="2026-10-10T23:10:51.872403" 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-10-10T23:10:51.864036" elapsed="0.008512"/>
</kw>
<msg time="2026-10-10T23:10:51.872757" 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 titanium and return ${value_if_true} if titanium is at least scandium, return ${value_if_false} otherwise.</doc>
<status status="PASS" start="2026-10-10T23:10:51.863517" elapsed="0.009290"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.873748" 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 variable.</doc>
<status status="PASS" start="2026-10-10T23:10:51.873142" elapsed="0.000660"/>
</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-10-10T23:10:51.886766" elapsed="0.000780"/>
</kw>
<msg time="2026-10-10T23:10:51.887647" 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-10-10T23:10:51.885948" elapsed="0.001806"/>
</kw>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Compare ${lower_bound} to titanium and return "available-capabilities" if titanium is at least ${lower_bound},
return "netconf-node-topology:available-capabilities" otherwise.</doc>
<status status="PASS" start="2026-10-10T23:10:51.885342" elapsed="0.002558"/>
</kw>
<msg time="2026-10-10T23:10:51.887984" 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-10-10T23:10:51.879786" elapsed="0.008287"/>
</kw>
<msg time="2026-10-10T23:10:51.888312" level="INFO">${substring3} = "available-capabilities"</msg>
<var>${substring3}</var>
<arg>"available-capabilities"</arg>
<arg>"netconf-node-topology:available-capabilities"</arg>
<doc>Compare scandium to titanium and return ${value_if_true} if titanium is at least scandium, return ${value_if_false} otherwise.</doc>
<status status="PASS" start="2026-10-10T23:10:51.879252" elapsed="0.009112"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.889404" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:10:51.888696" elapsed="0.000783"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.890574" level="INFO">${netconf_mount_expected_values} = ['"connection-status":"connected"', '"node-id":"netopeer2"', '"available-capabilities"']</msg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.889876" elapsed="0.000784"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.893481" level="INFO">${CREATE_GLOBAL_CREDENTIALS_REQ} = /w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/create_global_credentials.json</msg>
<arg>${CREATE_GLOBAL_CREDENTIALS_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/create_global_credentials.json</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.891029" elapsed="0.002545"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.896070" level="INFO">${CREATE_SSH_DEVICE_REQ} = /w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/create_ssh_device.json</msg>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/create_ssh_device.json</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.893951" elapsed="0.002177"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.897846" level="INFO">${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY} = /w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/create_device_hostkey_only.json</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.896383" elapsed="0.001523"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.900005" level="INFO">${CREATE_TLS_DEVICE_REQ} = /w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/create_tls_device.json</msg>
<arg>${CREATE_TLS_DEVICE_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/create_tls_device.json</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.898148" elapsed="0.001915"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.902008" level="INFO">${ADD_KEYSTORE_ENTRY_REQ} = /w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/add_keystore_entry.json</msg>
<arg>${ADD_KEYSTORE_ENTRY_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/add_keystore_entry.json</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.900319" elapsed="0.001746"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.904169" level="INFO">${ADD_PRIVATE_KEY_REQ} = /w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/add_private_key.json</msg>
<arg>${ADD_PRIVATE_KEY_REQ}</arg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/add_private_key.json</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.902320" elapsed="0.001966"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:51.906245" level="INFO">${ADD_TRUSTED_CERTIFICATE} = /w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/add_trusted_certificate.json</msg>
<arg>${ADD_TRUSTED_CERTIFICATE}</arg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/json/add_trusted_certificate.json</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:51.904538" elapsed="0.001766"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:51.906668" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./incorrect_ssh_host_rsa_key'.</msg>
<msg time="2026-10-10T23:10:52.020960" 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-10-10T23:10:51.906547" elapsed="0.114546"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:52.021771" level="INFO">Executing command 'awk '{print $2}' incorrect_ssh_host_rsa_key.pub'.</msg>
<msg time="2026-10-10T23:10:52.074386" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:10:52.074619" level="INFO">${incorrect_public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXu...</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-10-10T23:10:52.021557" elapsed="0.053115"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:52.078327" level="INFO">${INCORRECT_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXu...</msg>
<arg>${INCORRECT_PUB_KEY}</arg>
<arg>${incorrect_public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-10T23:10:52.075086" elapsed="0.003357"/>
</kw>
<doc>Get the suite ready for callhome test cases.</doc>
<status status="PASS" start="2026-10-10T23:10:42.749404" elapsed="9.329161"/>
</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-10-10T23:10:52.081068" level="INFO">Creating Session using : alias=session, url=http://10.30.171.136:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x78b330cb8210&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-10T23:10:52.080630" elapsed="0.000874"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:52.082079" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-10T23:10:52.126310" 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-10-10T23:10:52.081888" elapsed="0.044567"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:52.127028" 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-10-10T23:10:52.270110" 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-10-10T23:10:52.126833" elapsed="0.143450"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:52.270941" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-10T23:10:52.326981" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:10:52.327248" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9Ocm...</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-10-10T23:10:52.270727" elapsed="0.056581"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:52.330804" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9Ocm...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:10:52.327698" elapsed="0.003205"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-10-10T23:10:52.079967" elapsed="0.251061"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:10:52.376077" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:10:52.332047" elapsed="0.044188"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:10:52.386317" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:10:52.376618" elapsed="0.009839"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-10T23:10:52.331396" elapsed="0.055189"/>
</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-10-10T23:10:52.388571" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:52.387905" elapsed="0.000772"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-10T23:10:52.389923" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:10:52.390239" 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-10-10T23:10:52.389658" elapsed="0.000639"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:10:52.391370" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:10:52.390664" elapsed="0.000819"/>
</kw>
<status status="PASS" start="2026-10-10T23:10:52.389020" elapsed="0.002572"/>
</kw>
<status status="PASS" start="2026-10-10T23:10:52.388736" elapsed="0.002903"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:52.387850" elapsed="0.003835"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:10:52.392493" 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-10-10T23:10:52.391994" elapsed="0.000557"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:10:52.393327" 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-10-10T23:10:52.392879" elapsed="0.000505"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:10:52.394543" 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-10-10T23:10:52.393729" elapsed="0.000870"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:10:52.395366" 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-10-10T23:10:52.394928" elapsed="0.000512"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:10:53.434951" level="INFO">POST Request : url=http://10.30.171.136: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z"
        }
    }
}
 
 </msg>
<msg time="2026-10-10T23:10:53.435096" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0g6bc0su2mh1c18m7nykbd06ge0.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 09-Oct-2026 23:10:53 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:10:53.435361" 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-10-10T23:10:52.395740" elapsed="1.039699"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:10:53.435848" elapsed="0.001193"/>
</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-10-10T23:10:52.387082" elapsed="1.050091"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:10:53.438002" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-10T23:10:53.776555" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:10:53.776814" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:10:53.776906" 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-10-10T23:10:53.776991" 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-10-10T23:10:53.437647" elapsed="0.339398"/>
</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-10-10T23:10:53.780556" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:10:53.779709" 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="NOT RUN" start="2026-10-10T23:10:53.781470" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:53.780877" elapsed="0.000720"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:53.780829" elapsed="0.000825"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:10:53.828186" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:10:53.829952" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:10:53.830170" 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-10-10T23:10:53.787555" elapsed="0.042700"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:10:53.831020" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:53.830442" elapsed="0.000690"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:10:53.832448" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:53.831606" elapsed="0.000950"/>
</kw>
<status status="PASS" start="2026-10-10T23:10:53.831186" elapsed="0.001439"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:53.830378" elapsed="0.002296"/>
</if>
<kw name="Status 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-10-10T23:10:53.832977" elapsed="0.000427"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:10:53.834095" elapsed="0.000981"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:10:53.833797" elapsed="0.001357"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:10:53.836766" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:10:53.835693" elapsed="0.001348">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:53.835365" elapsed="0.001869">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:10:53.833532" elapsed="0.003840">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:53.786673" elapsed="0.050950">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:53.778873" elapsed="0.059017">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:55.840764" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:10:55.839871" elapsed="0.000965"/>
</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-10-10T23:10:55.841632" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:55.841025" elapsed="0.000737"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:55.840974" elapsed="0.000845"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:10:55.861476" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:10:55.861819" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:10:55.862064" 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-10-10T23:10:55.848147" elapsed="0.013976"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:10:55.862951" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:55.862332" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:10:55.864509" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:55.863611" elapsed="0.001011"/>
</kw>
<status status="PASS" start="2026-10-10T23:10:55.863132" elapsed="0.001564"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:55.862287" elapsed="0.002461"/>
</if>
<kw name="Status 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-10-10T23:10:55.865069" elapsed="0.000386"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:10:55.866160" elapsed="0.001066"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:10:55.865850" elapsed="0.001464"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:10:55.868946" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:10:55.867838" elapsed="0.001289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:55.867526" elapsed="0.001911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:10:55.865580" elapsed="0.004020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:55.847221" elapsed="0.022613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:55.838881" elapsed="0.031170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:57.872785" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:10:57.871932" 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-10-10T23:10:57.873600" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:57.873036" elapsed="0.000683"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:57.872987" elapsed="0.000784"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:10:57.890820" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:10:57.891128" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:10:57.891400" 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-10-10T23:10:57.879312" elapsed="0.012145"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:10:57.892174" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:57.891620" elapsed="0.000703"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:10:57.893635" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:57.892757" elapsed="0.000989"/>
</kw>
<status status="PASS" start="2026-10-10T23:10:57.892395" elapsed="0.001418"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:57.891579" elapsed="0.002279"/>
</if>
<kw name="Status 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-10-10T23:10:57.894159" elapsed="0.000387"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:10:57.895241" elapsed="0.000919"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:10:57.894917" elapsed="0.001460"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:10:57.897853" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:10:57.896847" elapsed="0.001172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:57.896559" elapsed="0.001608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:10:57.894663" elapsed="0.003669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:57.878454" elapsed="0.020118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:57.870960" elapsed="0.027808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:59.902067" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:10:59.901226" 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="NOT RUN" start="2026-10-10T23:10:59.902853" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:59.902359" elapsed="0.000611"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:59.902294" elapsed="0.000726"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:10:59.921761" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:10:59.922078" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:10:59.922360" 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-10-10T23:10:59.908822" elapsed="0.013594"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:10:59.923120" elapsed="0.000155"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:10:59.922574" elapsed="0.000851"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:10:59.924727" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:59.923860" elapsed="0.000974"/>
</kw>
<status status="PASS" start="2026-10-10T23:10:59.923478" elapsed="0.001425"/>
</branch>
<status status="PASS" start="2026-10-10T23:10:59.922534" elapsed="0.002413"/>
</if>
<kw name="Status 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-10-10T23:10:59.925280" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:10:59.926381" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:10:59.926039" elapsed="0.001377"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:10:59.928898" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:10:59.927882" elapsed="0.001212">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:59.927593" elapsed="0.001694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:10:59.925744" elapsed="0.003697">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:59.907868" elapsed="0.021780">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:59.900345" elapsed="0.029499">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:01.932595" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:01.931739" 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-10-10T23:11:01.933375" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:01.932831" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:01.932787" elapsed="0.000757"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:01.949983" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:01.950424" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:01.950634" 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-10-10T23:11:01.939074" elapsed="0.011613"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:01.951474" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:01.950845" elapsed="0.000748"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:01.952849" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:01.952011" elapsed="0.000944"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:01.951643" elapsed="0.001381"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:01.950805" elapsed="0.002263"/>
</if>
<kw name="Status 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-10-10T23:11:01.953430" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:01.954500" elapsed="0.001366"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:01.954159" elapsed="0.001788"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:01.957493" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:01.956463" elapsed="0.001199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:01.956113" elapsed="0.001696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:01.953909" elapsed="0.004032">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:01.938209" elapsed="0.019950">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:01.930768" elapsed="0.027642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:03.961258" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:03.960448" elapsed="0.000897"/>
</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-10-10T23:11:03.962012" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:03.961518" elapsed="0.000610"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:03.961473" elapsed="0.000706"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:03.979014" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:03.979364" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:03.979570" 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-10-10T23:11:03.967856" elapsed="0.011769"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:03.980395" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:03.979783" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:03.981732" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:03.980921" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:03.980560" elapsed="0.001347"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:03.979742" elapsed="0.002209"/>
</if>
<kw name="Status 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-10-10T23:11:03.982280" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:03.983317" elapsed="0.000920"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:03.982974" elapsed="0.001362"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:03.985760" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:03.984785" elapsed="0.001141">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:03.984501" elapsed="0.001569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:03.982730" elapsed="0.003491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:03.966968" elapsed="0.019567">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:03.959481" elapsed="0.027253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:05.989514" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:05.988680" elapsed="0.000904"/>
</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-10-10T23:11:05.990297" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:05.989754" elapsed="0.000663"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:05.989710" elapsed="0.000758"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:06.008908" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:06.009232" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:06.009484" 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-10-10T23:11:05.996433" elapsed="0.013107"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:06.010311" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:06.009701" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:06.011673" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:06.010854" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:06.010481" elapsed="0.001367"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:06.009661" elapsed="0.002232"/>
</if>
<kw name="Status 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-10-10T23:11:06.012226" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:06.013243" elapsed="0.000902"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:06.012918" elapsed="0.001341"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:06.015712" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:06.014736" elapsed="0.001138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:06.014449" elapsed="0.001647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:06.012677" elapsed="0.003581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:05.995523" elapsed="0.020966">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:05.987710" elapsed="0.028975">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:08.019469" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:08.018622" 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-10-10T23:11:08.020287" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:08.019718" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:08.019673" elapsed="0.000782"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:08.037384" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:08.037670" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:08.037873" 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-10-10T23:11:08.025917" elapsed="0.012010"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:08.038709" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:08.038085" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:08.040072" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:08.039300" elapsed="0.000878"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:08.038872" elapsed="0.001468"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:08.038045" elapsed="0.002341"/>
</if>
<kw name="Status 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-10-10T23:11:08.040687" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:08.041712" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:08.041422" elapsed="0.001379"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:08.044299" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:08.043312" elapsed="0.001178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:08.042970" elapsed="0.001670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:08.041121" elapsed="0.003641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:08.025029" elapsed="0.019937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:08.017660" elapsed="0.027508">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:10.050605" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:10.049776" elapsed="0.000900"/>
</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-10-10T23:11:10.051399" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:10.050847" elapsed="0.000673"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:10.050805" elapsed="0.000768"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:10.069091" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:10.069470" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:10.069692" 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-10-10T23:11:10.057013" elapsed="0.012735"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:10.070519" elapsed="0.000133"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:10.069905" elapsed="0.000814"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:10.071983" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:10.071132" elapsed="0.000958"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:10.070770" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:10.069865" elapsed="0.002370"/>
</if>
<kw name="Status 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-10-10T23:11:10.072558" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:10.073555" elapsed="0.000929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:10.073261" elapsed="0.001312"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:10.076029" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:10.075023" elapsed="0.001212">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:10.074736" elapsed="0.001668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:10.072978" elapsed="0.003551">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:10.056143" elapsed="0.020590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:10.046106" elapsed="0.030826">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:12.079684" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:12.078853" elapsed="0.000898"/>
</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-10-10T23:11:12.080473" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:12.079921" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:12.079876" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:12.097805" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:12.098175" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:12.098476" 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-10-10T23:11:12.086093" elapsed="0.012438"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:12.099292" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:12.098687" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:12.100742" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:12.099875" elapsed="0.000974"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:12.099456" elapsed="0.001463"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:12.098647" elapsed="0.002316"/>
</if>
<kw name="Status 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-10-10T23:11:12.101332" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:12.102408" elapsed="0.000983"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:12.102056" elapsed="0.001415"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:12.105422" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:12.103916" elapsed="0.001660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:12.103631" elapsed="0.002091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:12.101808" elapsed="0.004036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:12.085265" elapsed="0.020783">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:12.077896" elapsed="0.028402">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:14.109004" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:14.108175" 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="NOT RUN" start="2026-10-10T23:11:14.109796" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:14.109294" elapsed="0.000629"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:14.109248" elapsed="0.000729"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:14.127386" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:14.127672" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:14.127875" 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-10-10T23:11:14.115657" elapsed="0.012273"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:14.128691" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:14.128086" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:14.130035" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:14.129273" elapsed="0.000868"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:14.128856" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:14.128046" elapsed="0.002271"/>
</if>
<kw name="Status 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-10-10T23:11:14.130619" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:14.131619" elapsed="0.000937"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:14.131329" elapsed="0.001304"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:14.134096" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:14.133079" elapsed="0.001258">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:14.132794" elapsed="0.001692">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:14.131037" elapsed="0.003572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:14.114774" elapsed="0.020138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:14.107317" elapsed="0.027794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:16.137862" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:16.137023" elapsed="0.000910"/>
</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-10-10T23:11:16.138655" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:16.138105" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:16.138060" elapsed="0.000765"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:16.155767" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:16.156052" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:16.156328" 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-10-10T23:11:16.144891" elapsed="0.011496"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:16.157091" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:16.156543" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:16.158478" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:16.157667" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:16.157305" elapsed="0.001347"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:16.156504" elapsed="0.002192"/>
</if>
<kw name="Status 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-10-10T23:11:16.158999" elapsed="0.000413"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:16.160049" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:16.159760" elapsed="0.001307"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:16.162545" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:16.161578" elapsed="0.001120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:16.161282" elapsed="0.001652">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:16.159523" elapsed="0.003538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:16.143990" elapsed="0.019324">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:16.136063" elapsed="0.027449">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:18.166400" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:18.165575" 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="NOT RUN" start="2026-10-10T23:11:18.167137" elapsed="0.000092"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:18.166641" elapsed="0.000666"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:18.166596" elapsed="0.000762"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:18.185854" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:18.186142" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:18.186410" 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-10-10T23:11:18.172914" elapsed="0.013551"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:18.187168" elapsed="0.000147"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:18.186621" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:18.188627" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:18.187810" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:18.187430" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:18.186581" elapsed="0.002265"/>
</if>
<kw name="Status 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-10-10T23:11:18.189148" elapsed="0.000379"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:18.190158" elapsed="0.000917"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:18.189870" elapsed="0.001418"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:18.192735" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:18.191753" elapsed="0.001135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:18.191465" elapsed="0.001569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:18.189635" elapsed="0.003521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:18.172039" elapsed="0.021412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:18.164620" elapsed="0.029025">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:20.196892" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:20.196073" elapsed="0.000886"/>
</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-10-10T23:11:20.197666" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:20.197126" elapsed="0.000656"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:20.197083" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:20.214477" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:20.214774" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:20.214996" 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-10-10T23:11:20.203396" elapsed="0.011653"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:20.215820" elapsed="0.000129"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:20.215268" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:20.217327" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:20.216478" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:20.216065" elapsed="0.001436"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:20.215222" elapsed="0.002323"/>
</if>
<kw name="Status 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-10-10T23:11:20.217844" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:20.218845" elapsed="0.000933"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:20.218559" elapsed="0.001297"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:20.221328" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:20.220355" elapsed="0.001142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:20.220019" elapsed="0.001635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:20.218317" elapsed="0.003458">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:20.202515" elapsed="0.019460">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:20.194592" elapsed="0.027641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:22.224567" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:22.223791" elapsed="0.000836"/>
</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-10-10T23:11:22.225329" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:22.224784" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:22.224742" elapsed="0.000754"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:22.241889" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:22.242298" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:22.242504" 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-10-10T23:11:22.230941" elapsed="0.011617"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:22.243307" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:22.242714" elapsed="0.000707"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:22.244640" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:22.243838" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:22.243470" elapsed="0.001342"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:22.242674" elapsed="0.002182"/>
</if>
<kw name="Status 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-10-10T23:11:22.245183" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:22.246184" elapsed="0.001372"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:22.245881" elapsed="0.001756"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:22.249078" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:22.248090" elapsed="0.001205">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:22.247800" elapsed="0.001647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:22.245650" elapsed="0.003918">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:22.230080" elapsed="0.019689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:22.222949" elapsed="0.027010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:24.252324" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:24.251539" elapsed="0.000849"/>
</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-10-10T23:11:24.253045" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:24.252550" elapsed="0.000672"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:24.252508" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:24.271677" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:24.271961" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:24.272186" 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-10-10T23:11:24.258732" elapsed="0.013542"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:24.273059" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:24.272432" elapsed="0.000840"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:24.274499" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:24.273692" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:24.273322" elapsed="0.001347"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:24.272392" elapsed="0.002321"/>
</if>
<kw name="Status 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-10-10T23:11:24.275009" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:24.276009" elapsed="0.000926"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:24.275724" elapsed="0.001288"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:24.278476" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:24.277509" elapsed="0.001113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:24.277222" elapsed="0.001545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:24.275491" elapsed="0.003396">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:24.257861" elapsed="0.021365">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:24.250711" elapsed="0.028720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:26.282074" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:26.281294" elapsed="0.000877"/>
</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-10-10T23:11:26.282874" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:26.282379" elapsed="0.000611"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:26.282333" elapsed="0.000708"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:26.301300" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:26.301620" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:26.301843" 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-10-10T23:11:26.289063" elapsed="0.012835"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:26.302670" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:26.302055" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:26.304056" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:26.303295" elapsed="0.000890"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:26.302836" elapsed="0.001450"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:26.302016" elapsed="0.002316"/>
</if>
<kw name="Status 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-10-10T23:11:26.304633" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:26.305627" elapsed="0.000950"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:26.305339" elapsed="0.001315"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:26.308084" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:26.307094" elapsed="0.001199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:26.306813" elapsed="0.001713">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:26.305050" elapsed="0.003603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:26.288232" elapsed="0.020625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:26.280358" elapsed="0.028691">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:28.311577" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:28.310759" elapsed="0.000884"/>
</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-10-10T23:11:28.312392" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:28.311820" elapsed="0.000690"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:28.311776" elapsed="0.000787"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:28.329330" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:28.329623" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:28.329823" 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-10-10T23:11:28.318288" elapsed="0.011588"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:28.330664" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:28.330030" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:28.332034" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:28.331268" elapsed="0.000897"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:28.330849" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:28.329991" elapsed="0.002317"/>
</if>
<kw name="Status 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-10-10T23:11:28.332638" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:28.333681" elapsed="0.000980"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:28.333393" elapsed="0.001427"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:28.336320" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:28.335333" elapsed="0.001142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:28.334991" elapsed="0.001629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:28.333089" elapsed="0.003653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:28.317382" elapsed="0.019560">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:28.309842" elapsed="0.027337">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:30.340473" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:30.339626" elapsed="0.000916"/>
</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-10-10T23:11:30.341265" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:30.340715" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:30.340671" elapsed="0.000765"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:30.358012" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:30.358381" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:30.358604" 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-10-10T23:11:30.347136" elapsed="0.011521"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:30.359409" elapsed="0.000133"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:30.358811" elapsed="0.000800"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:30.360832" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:30.360021" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:30.359662" elapsed="0.001344"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:30.358772" elapsed="0.002280"/>
</if>
<kw name="Status 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-10-10T23:11:30.361431" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:30.362443" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:30.362093" elapsed="0.001366"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:30.364886" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:30.363902" elapsed="0.001140">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:30.363619" elapsed="0.001622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:30.361857" elapsed="0.003511">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:30.346255" elapsed="0.019315">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:30.338661" elapsed="0.027101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:32.368457" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:32.367601" 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-10-10T23:11:32.369283" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:32.368692" elapsed="0.000715"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:32.368649" elapsed="0.000810"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:32.386333" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:32.386720" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:32.386929" 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-10-10T23:11:32.375062" elapsed="0.011922"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:32.387771" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:32.387176" elapsed="0.000712"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:32.389223" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:32.388363" elapsed="0.000977"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:32.387938" elapsed="0.001472"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:32.387132" elapsed="0.002322"/>
</if>
<kw name="Status 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-10-10T23:11:32.389759" elapsed="0.000325"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:32.390798" elapsed="0.001509"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:32.390506" elapsed="0.001885"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:32.393866" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:32.392851" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:32.392557" elapsed="0.001671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:32.390262" elapsed="0.004101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:32.374239" elapsed="0.020329">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:32.366681" elapsed="0.028081">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:34.397378" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:34.396569" elapsed="0.000876"/>
</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-10-10T23:11:34.398119" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:34.397611" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:34.397568" elapsed="0.000752"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:34.415378" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:34.415678" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:34.415879" 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-10-10T23:11:34.403747" elapsed="0.012187"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:34.416749" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:34.416170" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:34.418159" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:34.417369" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:34.416912" elapsed="0.001455"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:34.416126" elapsed="0.002285"/>
</if>
<kw name="Status 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-10-10T23:11:34.418708" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:34.419697" elapsed="0.000923"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:34.419409" elapsed="0.001289"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:34.422136" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:34.421162" elapsed="0.001155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:34.420858" elapsed="0.001604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:34.419147" elapsed="0.003438">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:34.402874" elapsed="0.019991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:34.395676" elapsed="0.027400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:36.425568" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:36.424741" elapsed="0.000900"/>
</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-10-10T23:11:36.426424" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:36.425830" elapsed="0.000713"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:36.425783" elapsed="0.000814"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:36.444531" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:36.444811" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:36.445029" 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-10-10T23:11:36.432709" elapsed="0.012401"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:36.445835" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:36.445297" elapsed="0.000650"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:36.447357" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:36.446478" elapsed="0.000984"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:36.445997" elapsed="0.001532"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:36.445256" elapsed="0.002317"/>
</if>
<kw name="Status 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-10-10T23:11:36.447880" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:36.448899" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:36.448600" elapsed="0.001316"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:36.451394" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:36.450426" elapsed="0.001123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:36.450075" elapsed="0.001693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:36.448366" elapsed="0.003528">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:36.431836" elapsed="0.020294">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:36.423861" elapsed="0.028495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:38.454809" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:38.454012" elapsed="0.000860"/>
</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-10-10T23:11:38.455566" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:38.455033" elapsed="0.000648"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:38.454991" elapsed="0.000743"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:38.471940" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:38.472275" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:38.472476" 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-10-10T23:11:38.461319" elapsed="0.011210"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:38.473284" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:38.472683" elapsed="0.000714"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:38.474625" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:38.473814" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:38.473447" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:38.472644" elapsed="0.002195"/>
</if>
<kw name="Status 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-10-10T23:11:38.475183" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:38.476166" elapsed="0.000883"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:38.475859" elapsed="0.001391"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:38.478675" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:38.477710" elapsed="0.001109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:38.477423" elapsed="0.001538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:38.475628" elapsed="0.003477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:38.460431" elapsed="0.018904">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:38.453128" elapsed="0.026400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:40.482953" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:40.481945" elapsed="0.001096"/>
</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-10-10T23:11:40.484013" elapsed="0.000091"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:40.483326" elapsed="0.000922"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:40.483268" elapsed="0.001053"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:40.502261" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:40.502573" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:40.502807" 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-10-10T23:11:40.490367" elapsed="0.012497"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:40.503673" elapsed="0.000132"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:40.503031" elapsed="0.000848"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:40.505234" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:40.504371" elapsed="0.000978"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:40.503934" elapsed="0.001489"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:40.502989" elapsed="0.002481"/>
</if>
<kw name="Status 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-10-10T23:11:40.505789" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:40.506848" elapsed="0.001041"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:40.506540" elapsed="0.001432"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:40.509564" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:40.508505" elapsed="0.001216">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:40.508170" elapsed="0.001704">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:40.506286" elapsed="0.003717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:40.489432" elapsed="0.020841">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:40.480997" elapsed="0.029487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:42.513299" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:42.512428" 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-10-10T23:11:42.514036" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:42.513541" elapsed="0.000640"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:42.513496" elapsed="0.000765"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:42.531868" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:42.532389" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:42.532606" 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-10-10T23:11:42.519819" elapsed="0.012842"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:42.533459" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:42.532819" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:42.534855" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:42.533994" elapsed="0.000966"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:42.533625" elapsed="0.001404"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:42.532779" elapsed="0.002316"/>
</if>
<kw name="Status 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-10-10T23:11:42.535427" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:42.536433" elapsed="0.001374"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:42.536115" elapsed="0.001773"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:42.539370" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:42.538395" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:42.538074" elapsed="0.001592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:42.535852" elapsed="0.003933">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:42.518937" elapsed="0.021045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:42.511468" elapsed="0.028755">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:44.542920" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:44.542095" 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="NOT RUN" start="2026-10-10T23:11:44.543714" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:44.543214" elapsed="0.000617"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:44.543141" elapsed="0.000742"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:44.560074" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:44.560404" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:44.560608" 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-10-10T23:11:44.549532" elapsed="0.011131"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:44.561430" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:44.560820" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:44.562784" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:44.561968" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:44.561597" elapsed="0.001364"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:44.560780" elapsed="0.002225"/>
</if>
<kw name="Status 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-10-10T23:11:44.563360" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:44.564349" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:44.564009" elapsed="0.001358"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:44.566798" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:44.565812" elapsed="0.001140">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:44.565528" elapsed="0.001604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:44.563776" elapsed="0.003513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:44.548629" elapsed="0.018946">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:44.541136" elapsed="0.026632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:46.570440" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:46.569606" 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-10-10T23:11:46.571246" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:46.570676" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:46.570633" elapsed="0.000781"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:46.588856" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:46.589184" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:46.589441" 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-10-10T23:11:46.577349" elapsed="0.012147"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:46.590245" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:46.589650" elapsed="0.000711"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:46.591579" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:46.590772" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:46.590410" elapsed="0.001342"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:46.589611" elapsed="0.002185"/>
</if>
<kw name="Status 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-10-10T23:11:46.592120" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:46.593118" elapsed="0.000916"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:46.592804" elapsed="0.001335"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:46.595601" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:46.594620" elapsed="0.001133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:46.594333" elapsed="0.001650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:46.592571" elapsed="0.003565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:46.576476" elapsed="0.019897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:46.568707" elapsed="0.027861">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:48.599178" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:48.598372" 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="NOT RUN" start="2026-10-10T23:11:48.599968" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:48.599451" elapsed="0.000656"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:48.599407" elapsed="0.000752"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:48.616425" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:48.616718" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:48.616916" 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-10-10T23:11:48.605708" elapsed="0.011260"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:48.617741" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:48.617153" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:48.619126" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:48.618324" elapsed="0.000941"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:48.617904" elapsed="0.001431"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:48.617113" elapsed="0.002266"/>
</if>
<kw name="Status 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-10-10T23:11:48.619675" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:48.620666" elapsed="0.000942"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:48.620382" elapsed="0.001383"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:48.623249" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:48.622269" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:48.621934" elapsed="0.001649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:48.620116" elapsed="0.003599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:48.604833" elapsed="0.019082">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:48.597460" elapsed="0.026669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:50.629329" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:50.628516" elapsed="0.000881"/>
</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-10-10T23:11:50.630078" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:50.629565" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:50.629522" elapsed="0.000758"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:50.647478" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:50.647764" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:50.647984" 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-10-10T23:11:50.635682" elapsed="0.012383"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:50.648802" elapsed="0.000131"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:50.648254" elapsed="0.000748"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:50.650291" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:50.649469" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:50.649078" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:50.648184" elapsed="0.002329"/>
</if>
<kw name="Status 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-10-10T23:11:50.650810" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:50.651813" elapsed="0.000926"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:50.651522" elapsed="0.001296"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:50.654293" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:50.653316" elapsed="0.001131">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:50.652978" elapsed="0.001613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:50.651285" elapsed="0.003428">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:50.634807" elapsed="0.020107">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:50.627627" elapsed="0.027501">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:52.657766" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:52.656942" elapsed="0.000890"/>
</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-10-10T23:11:52.658550" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:52.658001" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:52.657956" elapsed="0.000760"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:52.674160" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:52.674587" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:52.674786" 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-10-10T23:11:52.664284" elapsed="0.010554"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:52.675587" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:52.674991" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:52.676916" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:52.676134" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:52.675748" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:52.674952" elapsed="0.002212"/>
</if>
<kw name="Status 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-10-10T23:11:52.677494" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:52.678485" elapsed="0.001419"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:52.678166" elapsed="0.001816"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:52.681470" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:52.680485" elapsed="0.001135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:52.680167" elapsed="0.001598">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:52.677911" elapsed="0.003976">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:52.663406" elapsed="0.018705">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:52.656006" elapsed="0.026328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:54.685128" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:54.684329" 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="NOT RUN" start="2026-10-10T23:11:54.685895" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:54.685396" elapsed="0.000634"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:54.685353" elapsed="0.000730"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:54.702656" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:54.702941" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:54.703178" 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-10-10T23:11:54.691574" elapsed="0.011694"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:54.703971" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:54.703424" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:54.705364" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:54.704553" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:54.704161" elapsed="0.001375"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:54.703384" elapsed="0.002196"/>
</if>
<kw name="Status 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-10-10T23:11:54.705876" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:54.706873" elapsed="0.000959"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:54.706584" elapsed="0.001328"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:54.709479" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:54.708488" elapsed="0.001137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:54.708102" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:54.706345" elapsed="0.003545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:54.690682" elapsed="0.019555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:54.683384" elapsed="0.027056">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:56.713114" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:56.712326" elapsed="0.000857"/>
</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-10-10T23:11:56.713915" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:56.713382" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:56.713338" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:56.731391" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:56.731691" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:56.731915" 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-10-10T23:11:56.720048" elapsed="0.011922"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:56.732730" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:56.732154" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:56.734083" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:56.733306" elapsed="0.000881"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:56.732891" elapsed="0.001402"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:56.732113" elapsed="0.002226"/>
</if>
<kw name="Status 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-10-10T23:11:56.734636" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:56.735639" elapsed="0.000929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:56.735351" elapsed="0.001295"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:56.738082" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:56.737111" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:56.736804" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:56.735081" elapsed="0.003549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:56.719173" elapsed="0.019658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:56.711406" elapsed="0.027645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:58.741712" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:11:58.740879" elapsed="0.000900"/>
</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-10-10T23:11:58.742491" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:58.741948" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:58.741906" elapsed="0.000753"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:11:58.759235" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:11:58.759530" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:11:58.759731" 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-10-10T23:11:58.748316" elapsed="0.011469"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:11:58.760552" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:11:58.759945" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:11:58.761909" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:58.761110" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-10T23:11:58.760720" elapsed="0.001392"/>
</branch>
<status status="PASS" start="2026-10-10T23:11:58.759903" elapsed="0.002253"/>
</if>
<kw name="Status 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-10-10T23:11:58.762489" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:11:58.763501" elapsed="0.000935"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:11:58.763176" elapsed="0.001424"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:11:58.766080" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:11:58.765086" elapsed="0.001180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:58.764772" elapsed="0.001645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:11:58.762914" elapsed="0.003629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:58.747431" elapsed="0.019316">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:11:58.739937" elapsed="0.027007">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:00.770385" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:00.769545" 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="NOT RUN" start="2026-10-10T23:12:00.771139" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:00.770626" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:00.770582" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:00.787132" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:00.787486" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:00.787708" 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-10-10T23:12:00.776889" elapsed="0.010873"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:00.788520" elapsed="0.000133"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:00.787920" elapsed="0.000802"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:00.790062" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:00.789176" elapsed="0.000994"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:00.788774" elapsed="0.001501"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:00.787880" elapsed="0.002446"/>
</if>
<kw name="Status 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-10-10T23:12:00.790629" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:00.791669" elapsed="0.001013"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:00.791361" elapsed="0.001412"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:00.794295" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:00.793282" elapsed="0.001183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:00.792937" elapsed="0.001673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:00.791075" elapsed="0.003655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:00.775966" elapsed="0.018963">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:00.767914" elapsed="0.027229">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:02.797919" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:02.797115" elapsed="0.000900"/>
</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-10-10T23:12:02.798712" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:02.798185" elapsed="0.000642"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:02.798141" elapsed="0.000736"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:02.814756" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:02.815176" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:02.815441" 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-10-10T23:12:02.804658" elapsed="0.010839"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:02.816291" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:02.815657" elapsed="0.000757"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:02.817675" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:02.816839" elapsed="0.000943"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:02.816466" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:02.815617" elapsed="0.002280"/>
</if>
<kw name="Status 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-10-10T23:12:02.818256" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:02.819295" elapsed="0.000956"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:02.818917" elapsed="0.001417"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:02.822374" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:02.820876" elapsed="0.001649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:02.820585" elapsed="0.002088">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:02.818682" elapsed="0.004115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:02.803766" elapsed="0.019256">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:02.796154" elapsed="0.027093">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:04.826120" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:04.825240" elapsed="0.000981"/>
</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-10-10T23:12:04.826901" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:04.826399" elapsed="0.000643"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:04.826352" elapsed="0.000742"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:04.842635" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:04.842922" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:04.843150" 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-10-10T23:12:04.832721" elapsed="0.010515"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:04.843945" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:04.843394" elapsed="0.000691"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:04.845339" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:04.844529" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:04.844136" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:04.843355" elapsed="0.002205"/>
</if>
<kw name="Status 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-10-10T23:12:04.845856" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:04.846855" elapsed="0.000929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:04.846568" elapsed="0.001293"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:04.849333" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:04.848364" elapsed="0.001119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:04.848048" elapsed="0.001580">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:04.846326" elapsed="0.003424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:04.831812" elapsed="0.018262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:04.824290" elapsed="0.026015">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:06.852964" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:06.852162" 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="NOT RUN" start="2026-10-10T23:12:06.853772" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:06.853257" elapsed="0.000631"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:06.853181" elapsed="0.000758"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:06.873100" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:06.873427" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:06.873654" 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-10-10T23:12:06.859970" elapsed="0.013740"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:06.874483" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:06.873869" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:06.875814" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:06.875024" elapsed="0.000895"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:06.874648" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:06.873828" elapsed="0.002233"/>
</if>
<kw name="Status 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-10-10T23:12:06.876391" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:06.877388" elapsed="0.000926"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:06.877067" elapsed="0.001327"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:06.879811" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:06.878841" elapsed="0.001120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:06.878557" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:06.876809" elapsed="0.003583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:06.859088" elapsed="0.021505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:06.851171" elapsed="0.029614">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:08.883474" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:08.882652" elapsed="0.000891"/>
</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-10-10T23:12:08.884265" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:08.883712" elapsed="0.000673"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:08.883669" elapsed="0.000768"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:08.902169" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:08.902501" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:08.902702" 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-10-10T23:12:08.890011" elapsed="0.012744"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:08.903513" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:08.902909" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:08.904902" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:08.904099" elapsed="0.000937"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:08.903679" elapsed="0.001426"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:08.902871" elapsed="0.002279"/>
</if>
<kw name="Status 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-10-10T23:12:08.905476" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:08.906467" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:08.906151" elapsed="0.001414"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:08.909069" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:08.908046" elapsed="0.001209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:08.907737" elapsed="0.001668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:08.905893" elapsed="0.003637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:08.889126" elapsed="0.020605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:08.881667" elapsed="0.028259">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:10.913513" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:10.912665" elapsed="0.000916"/>
</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-10-10T23:12:10.914312" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:10.913753" elapsed="0.000676"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:10.913709" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:10.932042" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:10.932363" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:10.932589" 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-10-10T23:12:10.920300" elapsed="0.012344"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:10.933510" elapsed="0.000117"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:10.932802" elapsed="0.000894"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:10.934945" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:10.934145" elapsed="0.000933"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:10.933747" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:10.932762" elapsed="0.002455"/>
</if>
<kw name="Status 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-10-10T23:12:10.935531" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:10.936550" elapsed="0.000952"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:10.936256" elapsed="0.001325"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:10.939042" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:10.938051" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:10.937740" elapsed="0.001662">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:10.935955" elapsed="0.003571">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:10.919407" elapsed="0.020323">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:10.910893" elapsed="0.029030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:12.942693" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:12.941833" 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-10-10T23:12:12.943484" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:12.942931" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:12.942887" elapsed="0.000765"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:12.960642" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:12.961044" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:12.961285" 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-10-10T23:12:12.949255" elapsed="0.012106"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:12.962272" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:12.961557" elapsed="0.000836"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:12.963640" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:12.962815" elapsed="0.000946"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:12.962442" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:12.961507" elapsed="0.002367"/>
</if>
<kw name="Status 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-10-10T23:12:12.964240" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:12.965249" elapsed="0.001397"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:12.964904" elapsed="0.001822"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:12.968186" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:12.967224" elapsed="0.001144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:12.966889" elapsed="0.001625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:12.964669" elapsed="0.003968">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:12.948383" elapsed="0.020455">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:12.940865" elapsed="0.028187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:14.971900" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:14.971077" 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-10-10T23:12:14.972702" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:14.972174" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:14.972127" elapsed="0.000742"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:14.990319" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:14.990620" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:14.990822" 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-10-10T23:12:14.978505" elapsed="0.012371"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:14.991640" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:14.991058" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:14.993024" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:14.992222" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:14.991802" elapsed="0.001429"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:14.991017" elapsed="0.002260"/>
</if>
<kw name="Status 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-10-10T23:12:14.993576" elapsed="0.000325"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:14.994603" elapsed="0.000941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:14.994315" elapsed="0.001308"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:14.997056" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:14.996085" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:14.995781" elapsed="0.001604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:14.994044" elapsed="0.003460">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:14.977570" elapsed="0.020223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:14.970099" elapsed="0.027914">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:17.000601" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:16.999783" elapsed="0.000887"/>
</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-10-10T23:12:17.001393" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:17.000842" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:17.000798" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:17.017936" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:17.018285" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:17.018509" 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-10-10T23:12:17.007543" elapsed="0.011020"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:17.019331" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:17.018721" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:17.020705" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:17.019873" elapsed="0.000939"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:17.019500" elapsed="0.001381"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:17.018681" elapsed="0.002246"/>
</if>
<kw name="Status 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-10-10T23:12:17.021293" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:17.022304" elapsed="0.000972"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:17.021955" elapsed="0.001409"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:17.024784" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:17.023810" elapsed="0.001133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:17.023529" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:17.021720" elapsed="0.003644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:17.006662" elapsed="0.018903">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:16.998862" elapsed="0.026894">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:19.028405" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:19.027583" elapsed="0.000890"/>
</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-10-10T23:12:19.029222" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:19.028674" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:19.028628" elapsed="0.000766"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:19.045600" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:19.045884" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:19.046114" 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-10-10T23:12:19.034869" elapsed="0.011299"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:19.046921" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:19.046356" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:19.048318" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:19.047510" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:19.047110" elapsed="0.001383"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:19.046316" elapsed="0.002221"/>
</if>
<kw name="Status 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-10-10T23:12:19.048833" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:19.049827" elapsed="0.000927"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:19.049544" elapsed="0.001369"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:19.052404" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:19.051428" elapsed="0.001129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:19.051109" elapsed="0.001595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:19.049309" elapsed="0.003517">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:19.034013" elapsed="0.019036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:19.026639" elapsed="0.026636">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:21.056494" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:21.055605" 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-10-10T23:12:21.057328" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:21.056733" elapsed="0.000721"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:21.056688" elapsed="0.000820"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:21.074480" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:21.074765" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:21.075046" 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-10-10T23:12:21.063112" elapsed="0.011990"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:21.075839" elapsed="0.000152"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:21.075291" elapsed="0.000771"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:21.077320" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:21.076506" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:21.076113" elapsed="0.001398"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:21.075250" elapsed="0.002308"/>
</if>
<kw name="Status 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-10-10T23:12:21.077858" elapsed="0.000387"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:21.078879" elapsed="0.000925"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:21.078592" elapsed="0.001290"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:21.081378" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:21.080385" elapsed="0.001142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:21.080068" elapsed="0.001606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:21.078358" elapsed="0.003436">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:21.062259" elapsed="0.019781">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:21.054688" elapsed="0.027587">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:23.085040" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:23.084226" elapsed="0.000882"/>
</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-10-10T23:12:23.085807" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:23.085316" elapsed="0.000605"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:23.085269" elapsed="0.000721"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:23.102005" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:23.102434" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:23.102643" 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-10-10T23:12:23.091773" elapsed="0.010923"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:23.103457" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:23.102853" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:23.104803" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:23.104014" elapsed="0.000894"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:23.103620" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:23.102813" elapsed="0.002230"/>
</if>
<kw name="Status 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-10-10T23:12:23.105382" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:23.106399" elapsed="0.001371"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:23.106082" elapsed="0.001770"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:23.109354" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:23.108367" elapsed="0.001136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:23.108047" elapsed="0.001602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:23.105818" elapsed="0.003955">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:23.090893" elapsed="0.019127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:23.083258" elapsed="0.026993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:25.112939" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:25.112147" elapsed="0.000886"/>
</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-10-10T23:12:25.113767" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:25.113235" elapsed="0.000677"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:25.113159" elapsed="0.000846"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:25.135132" level="INFO">GET Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:25.135486" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:25.135687" 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-10-10T23:12:25.120842" elapsed="0.014898"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:25.136524" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:25.135894" elapsed="0.000743"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:25.137854" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:25.137064" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:25.136685" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:25.135855" elapsed="0.002237"/>
</if>
<kw name="Status 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-10-10T23:12:25.138420" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:25.139437" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:12:25.139118" elapsed="0.001332"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:25.141857" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:25.140890" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:25.140610" elapsed="0.001571">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:12:25.138852" elapsed="0.003485">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:25.119822" elapsed="0.022804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:25.111260" elapsed="0.031562">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-10-10T23:12:25.143030" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:10:53.777566" elapsed="91.365734">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:25.143742" elapsed="0.000045"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:25.145614" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-10T23:12:25.453696" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:12:25.454055" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:12:25.454152" 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-10-10T23:12:25.454278" 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-10-10T23:12:25.145223" elapsed="0.309109"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:25.455585" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:12:25.454857" elapsed="0.000820"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:25.456531" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-10T23:12:25.797006" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:12:25.797327" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:12:25.797420" 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-10-10T23:12:25.797504" 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-10-10T23:12:25.456150" elapsed="0.341402"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:25.798455" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-10T23:12:25.877864" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:12:25.878234" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-10T23:12:25.878332" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:12:25.878416" 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-10-10T23:12:25.798046" elapsed="0.080419"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:25.879226" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-10T23:12:25.927099" 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-10-10T23:12:25.878930" elapsed="0.048339"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:25.944484" level="INFO">DELETE Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:25.944582" level="INFO">DELETE Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:25.944877" 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-10-10T23:12:25.927581" elapsed="0.017353"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:25.969478" level="INFO">DELETE Request : url=http://10.30.171.136: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=node0g6bc0su2mh1c18m7nykbd06ge0.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:25.969746" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:12:25.969982" 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-10-10T23:12:25.945322" elapsed="0.024718"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-10T23:12:25.144444" elapsed="0.825734"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-10-10T23:10:52.078709" elapsed="93.891597">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCl+zZCQPze2eisbMr66LTVpklgjNm19UvSEg3uaCiQ+C8d/OlYBB/kX6Cu4mR5Q1ntN+xuNcT6PVcOWWmNQm2MWyCYgqeVyQGtmTaLvmnsL8vGR+kCciR6KCmBOFmg19dF5P0Xa4zHPdWkuBfgjSRTVGrpcAxiVo95dlJB9OcmAKB556rwgZed4GKCqbrgmVESgR8J894ed1dgqv/+TZHwD2TPLHKpqN3K1DsW8/9oTURQwMqrrBpcGr4ydZlIsVSKQtyy+DSq+D3r0Id4C9fqgj0FgK0A2/7xgz3GxyBPFMzdko5ffDdCBbeVwx9nqfBeN72ZU+wA3G1hhGMSCE+z","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-10-10T23:12:25.973175" level="INFO">Creating Session using : alias=session, url=http://10.30.171.136:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x78b330324690&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-10T23:12:25.972712" elapsed="0.000791"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:25.974101" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-10T23:12:25.986900" 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-10-10T23:12:25.973879" elapsed="0.013168"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:25.987657" 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-10-10T23:12:26.200851" 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-10-10T23:12:25.987462" elapsed="0.213584"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:26.201776" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-10T23:12:26.250893" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:12:26.251152" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a5...</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-10-10T23:12:26.201531" elapsed="0.049712"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:12:26.254935" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a5...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:12:26.251659" elapsed="0.003397"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-10-10T23:12:25.972079" elapsed="0.283104"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:12:26.301029" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:12:26.256274" elapsed="0.044886"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:12:26.312271" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:12:26.301563" elapsed="0.010831"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-10T23:12:26.255569" elapsed="0.056956"/>
</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-10-10T23:12:26.314507" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:26.313764" elapsed="0.000853"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-10T23:12:26.315922" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:12:26.316301" 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-10-10T23:12:26.315653" elapsed="0.000715"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:12:26.317458" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:12:26.316715" elapsed="0.000834"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:26.314979" elapsed="0.002677"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:26.314671" elapsed="0.003032"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:26.313719" elapsed="0.004029"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:12:26.318623" 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-10-10T23:12:26.318103" elapsed="0.000577"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:12:26.319508" 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-10-10T23:12:26.319044" elapsed="0.000520"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:12:26.320481" 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-10-10T23:12:26.319885" elapsed="0.000657"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:12:26.321340" 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-10-10T23:12:26.320872" elapsed="0.000524"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:26.340923" level="INFO">POST Request : url=http://10.30.171.136: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL"
        }
    }
}
 
 </msg>
<msg time="2026-10-10T23:12:26.341071" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node018zqja7lliprdcbohdq8124ou1.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 09-Oct-2026 23:12:26 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:26.341335" 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-10-10T23:12:26.321689" elapsed="0.019711"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:12:26.341763" elapsed="0.000918"/>
</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-10-10T23:12:26.313049" elapsed="0.029755"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:12:26.343585" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-10T23:12:26.649997" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:12:26.650344" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:12:26.650436" 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-10-10T23:12:26.650520" 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-10-10T23:12:26.343239" elapsed="0.307329"/>
</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-10-10T23:12:26.656440" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:26.655665" 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="PASS" start="2026-10-10T23:12:26.657402" elapsed="0.000407"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:26.656747" elapsed="0.001142"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:26.656701" elapsed="0.001243"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:26.673097" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:26.673427" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:26.673649" 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-10-10T23:12:26.663456" elapsed="0.010247"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:26.674470" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:26.673858" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:26.675790" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:26.675009" elapsed="0.000883"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:26.674634" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:26.673818" elapsed="0.002212"/>
</if>
<kw name="Status 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-10-10T23:12:26.676356" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:26.678474" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:26.677379" elapsed="0.001253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:26.677058" elapsed="0.001724">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:26.676778" elapsed="0.002128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:26.662589" elapsed="0.016579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:26.652415" elapsed="0.027054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:28.682304" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:28.681468" 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="PASS" start="2026-10-10T23:12:28.683068" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:28.682546" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:28.682503" elapsed="0.001096"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:28.699573" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:28.699856" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:28.700080" 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-10-10T23:12:28.689122" elapsed="0.011012"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:28.700875" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:28.700324" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:28.702273" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:28.701457" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:28.701063" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:28.700282" elapsed="0.002218"/>
</if>
<kw name="Status 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-10-10T23:12:28.702802" elapsed="0.000427"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:28.704875" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:28.703872" elapsed="0.001178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:28.703583" elapsed="0.001733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:28.703345" elapsed="0.002525">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:28.688277" elapsed="0.017957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:28.680469" elapsed="0.025973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:30.709080" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:30.708289" elapsed="0.000859"/>
</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-10-10T23:12:30.709839" elapsed="0.000417"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:30.709348" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:30.709304" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:30.725676" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:30.725980" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:30.726233" 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-10-10T23:12:30.716000" elapsed="0.010295"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:30.727009" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:30.726454" elapsed="0.000669"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:30.728397" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:30.727562" elapsed="0.000941"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:30.727174" elapsed="0.001396"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:30.726414" elapsed="0.002200"/>
</if>
<kw name="Status 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-10-10T23:12:30.728908" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:30.730968" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:30.729911" elapsed="0.001217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:30.729617" elapsed="0.001712">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:30.729386" elapsed="0.002156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:30.715149" elapsed="0.016601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:30.707383" elapsed="0.024558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:32.733630" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:32.733131" elapsed="0.000536"/>
</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-10-10T23:12:32.734031" elapsed="0.000262"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:32.733767" elapsed="0.000567"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:32.733741" elapsed="0.000622"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:32.745132" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:32.745348" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:32.745456" 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-10-10T23:12:32.737309" elapsed="0.008173"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:32.745880" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:32.745561" elapsed="0.000380"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:32.746547" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:32.746171" elapsed="0.000426"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:32.745981" elapsed="0.000649"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:32.745541" elapsed="0.001110"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-10T23:12:32.746792" elapsed="0.000148"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:32.747729" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:32.747277" elapsed="0.000586">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:32.747124" elapsed="0.000811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:32.747010" elapsed="0.001007">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:32.736845" elapsed="0.011270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:32.732614" elapsed="0.015613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:34.750734" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:34.749912" 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="PASS" start="2026-10-10T23:12:34.751527" elapsed="0.000372"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:34.750995" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:34.750926" elapsed="0.001132"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:34.767162" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:34.767496" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:34.767726" 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-10-10T23:12:34.757633" elapsed="0.010150"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:34.768539" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:34.767940" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:34.769867" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:34.769084" elapsed="0.000995"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:34.768703" elapsed="0.001448"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:34.767900" elapsed="0.002326"/>
</if>
<kw name="Status 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-10-10T23:12:34.770533" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:34.772618" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:34.771584" elapsed="0.001184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:34.771295" elapsed="0.001621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:34.771024" elapsed="0.002042">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:34.756750" elapsed="0.016548">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:34.748999" elapsed="0.024495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:36.776663" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:36.775292" elapsed="0.001441"/>
</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-10-10T23:12:36.777466" elapsed="0.000373"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:36.776907" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:36.776863" elapsed="0.001134"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:36.792405" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:36.792688" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:36.793026" 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-10-10T23:12:36.783503" elapsed="0.009581"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:36.793826" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:36.793276" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:36.795236" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:36.794421" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:36.794023" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:36.793234" elapsed="0.002226"/>
</if>
<kw name="Status 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-10-10T23:12:36.795761" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:36.797821" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:36.796773" elapsed="0.001221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:36.796481" elapsed="0.001662">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:36.796245" elapsed="0.002057">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:36.782627" elapsed="0.015880">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:36.774352" elapsed="0.024351">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:38.801021" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:38.800256" 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-10-10T23:12:38.801760" elapsed="0.000389"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:38.801278" elapsed="0.000981"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:38.801235" elapsed="0.001078"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:38.817149" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:38.817465" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:38.817668" 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-10-10T23:12:38.807806" 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-10-10T23:12:38.818503" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:38.817879" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:38.819860" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:38.819081" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:38.818666" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:38.817839" elapsed="0.002262"/>
</if>
<kw name="Status 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-10-10T23:12:38.820430" elapsed="0.000307"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:38.822439" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:38.821420" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:38.821104" elapsed="0.001628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:38.820844" elapsed="0.002010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:38.806904" elapsed="0.016184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:38.799436" elapsed="0.023880">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:40.826510" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:40.825691" elapsed="0.000886"/>
</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-10-10T23:12:40.827308" elapsed="0.000370"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:40.826747" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:40.826703" elapsed="0.001108"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:40.842826" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:40.843162" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:40.843427" 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-10-10T23:12:40.833360" elapsed="0.010122"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:40.844284" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:40.843640" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:40.845633" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:40.844817" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:40.844456" elapsed="0.001351"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:40.843601" elapsed="0.002250"/>
</if>
<kw name="Status 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-10-10T23:12:40.846174" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:40.848162" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:40.847170" elapsed="0.001172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:40.846857" elapsed="0.001630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:40.846623" elapsed="0.001989">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:40.832469" elapsed="0.016343">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:40.824794" elapsed="0.024314">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:42.851775" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:42.850968" elapsed="0.000874"/>
</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-10-10T23:12:42.852591" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:42.852041" elapsed="0.001030"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:42.851996" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:42.868998" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:42.869324" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:42.869526" 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-10-10T23:12:42.858652" elapsed="0.010927"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:42.870344" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:42.869735" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:42.871696" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:42.870886" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:42.870509" elapsed="0.001362"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:42.869696" elapsed="0.002218"/>
</if>
<kw name="Status 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-10-10T23:12:42.872281" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:42.874767" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:42.873283" elapsed="0.001634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:42.872934" elapsed="0.002155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:42.872704" elapsed="0.002534">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:42.857774" elapsed="0.017745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:42.850053" elapsed="0.025657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:44.878520" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:44.877657" 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-10-10T23:12:44.879317" elapsed="0.000366"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:44.878764" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:44.878720" elapsed="0.001096"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:44.896810" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:44.897144" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:44.897411" 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-10-10T23:12:44.885520" elapsed="0.011947"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:44.898243" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:44.897631" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:44.899778" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:44.898883" elapsed="0.001000"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:44.898495" elapsed="0.001492"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:44.897586" elapsed="0.002448"/>
</if>
<kw name="Status 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-10-10T23:12:44.900366" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:44.902376" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:44.901367" elapsed="0.001160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:44.901049" elapsed="0.001624">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:44.900788" elapsed="0.002095">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:44.884578" elapsed="0.018540">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:44.876673" elapsed="0.026670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:46.905907" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:46.905107" 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="PASS" start="2026-10-10T23:12:46.906693" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:46.906168" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:46.906124" elapsed="0.001115"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:46.924750" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:46.925060" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:46.925318" 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-10-10T23:12:46.913169" elapsed="0.012205"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:46.926103" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:46.925531" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:46.927501" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:46.926690" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:46.926319" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:46.925492" elapsed="0.002228"/>
</if>
<kw name="Status 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-10-10T23:12:46.928052" elapsed="0.000483"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:46.930241" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:46.929235" elapsed="0.001252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:46.928889" elapsed="0.001750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:46.928652" elapsed="0.002110">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:46.912311" elapsed="0.018674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:46.904184" elapsed="0.026995">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:48.933794" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:48.932981" elapsed="0.000881"/>
</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-10-10T23:12:48.934581" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:48.934054" elapsed="0.001013"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:48.934010" elapsed="0.001113"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:48.951067" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:48.951397" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:48.951601" 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-10-10T23:12:48.940727" elapsed="0.010929"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:48.952416" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:48.951812" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:48.953772" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:48.952968" elapsed="0.001020"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:48.952585" elapsed="0.001475"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:48.951773" elapsed="0.002332"/>
</if>
<kw name="Status 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-10-10T23:12:48.954439" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:48.956549" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:48.955523" elapsed="0.001180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:48.955177" elapsed="0.001676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:48.954862" elapsed="0.002135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:48.939855" elapsed="0.017374">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:48.932046" elapsed="0.025383">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:50.960782" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:50.959280" elapsed="0.001572"/>
</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-10-10T23:12:50.961589" elapsed="0.000440"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:50.961055" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:50.961009" elapsed="0.001156"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:50.978297" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:50.978586" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:50.978887" 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-10-10T23:12:50.967723" elapsed="0.011244"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:50.979711" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:50.979129" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:50.981126" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:50.980302" elapsed="0.000964"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:50.979875" elapsed="0.001463"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:50.979089" elapsed="0.002293"/>
</if>
<kw name="Status 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-10-10T23:12:50.981681" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:50.983681" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:50.982684" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:50.982394" elapsed="0.001606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:50.982127" elapsed="0.002000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:50.966851" elapsed="0.017508">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:50.958335" elapsed="0.026218">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:52.987260" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:52.986439" elapsed="0.000890"/>
</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-10-10T23:12:52.988030" elapsed="0.000397"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:52.987499" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:52.987455" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:53.005663" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:53.006014" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:53.006275" 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-10-10T23:12:52.994157" elapsed="0.012181"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:53.007135" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:53.006527" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:53.008530" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:53.007707" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:53.007335" elapsed="0.001369"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:53.006473" elapsed="0.002276"/>
</if>
<kw name="Status 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-10-10T23:12:53.009073" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:53.011412" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:53.010144" elapsed="0.001434">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:53.009772" elapsed="0.001957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:53.009531" elapsed="0.002321">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:52.993299" elapsed="0.018836">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:52.985487" elapsed="0.026902">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:55.015691" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:55.014842" elapsed="0.000916"/>
</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-10-10T23:12:55.016480" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:55.015925" elapsed="0.001053"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:55.015882" elapsed="0.001151"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:55.033766" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:55.034077" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:55.034333" 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-10-10T23:12:55.022557" elapsed="0.011832"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:55.035132" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:55.034547" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:55.036537" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:55.035709" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:55.035331" elapsed="0.001380"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:55.034507" elapsed="0.002249"/>
</if>
<kw name="Status 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-10-10T23:12:55.037076" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:55.039094" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:55.038076" elapsed="0.001203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:55.037766" elapsed="0.001659">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:55.037530" elapsed="0.002020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:55.021673" elapsed="0.018078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:55.013931" elapsed="0.026123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:57.042872" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:57.041868" 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-10-10T23:12:57.043662" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:57.043136" elapsed="0.000990"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:57.043093" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:57.060474" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:57.060767" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:57.060985" 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-10-10T23:12:57.049903" elapsed="0.011137"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:57.061780" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:57.061226" elapsed="0.000671"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:57.063164" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:57.062373" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:57.061978" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:57.061156" elapsed="0.002429"/>
</if>
<kw name="Status 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-10-10T23:12:57.063880" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:57.066649" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:57.064873" elapsed="0.001935">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:57.064585" elapsed="0.002394">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:57.064351" elapsed="0.002756">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:57.049051" elapsed="0.018380">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:57.040888" elapsed="0.026743">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:59.070392" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:12:59.069515" 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-10-10T23:12:59.071238" elapsed="0.000388"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:59.070646" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:59.070599" elapsed="0.001170"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:12:59.090049" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:12:59.090401" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:12:59.090619" 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-10-10T23:12:59.077781" elapsed="0.012896"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:12:59.091484" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:12:59.090847" elapsed="0.000756"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:12:59.092977" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:59.092107" elapsed="0.000986"/>
</kw>
<status status="PASS" start="2026-10-10T23:12:59.091657" elapsed="0.001508"/>
</branch>
<status status="PASS" start="2026-10-10T23:12:59.090805" elapsed="0.002440"/>
</if>
<kw name="Status 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-10-10T23:12:59.093587" elapsed="0.000327"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:12:59.095703" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:12:59.094644" elapsed="0.001218">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:59.094335" elapsed="0.001708">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:59.094052" elapsed="0.002259">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:59.076829" elapsed="0.019711">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:59.068546" elapsed="0.028208">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:01.099426" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:01.098599" 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="PASS" start="2026-10-10T23:13:01.100174" elapsed="0.000390"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:01.099663" elapsed="0.000978"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:01.099620" elapsed="0.001074"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:01.116823" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:01.117135" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:01.117392" 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-10-10T23:13:01.106809" elapsed="0.010640"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:01.118180" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:01.117610" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:01.119627" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:01.118817" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:01.118377" elapsed="0.001425"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:01.117570" elapsed="0.002277"/>
</if>
<kw name="Status 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-10-10T23:13:01.120165" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:01.122159" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:01.121161" elapsed="0.001273">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:01.120848" elapsed="0.001738">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:01.120616" elapsed="0.002096">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:01.105910" elapsed="0.017006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:01.097694" elapsed="0.025450">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:03.125899" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:03.125091" elapsed="0.000897"/>
</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-10-10T23:13:03.126702" elapsed="0.000392"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:03.126183" elapsed="0.001001"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:03.126134" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:03.142495" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:03.142777" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:03.143004" 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-10-10T23:13:03.132762" elapsed="0.010301"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:03.143823" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:03.143252" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:03.145251" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:03.144435" elapsed="0.001012"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:03.144007" elapsed="0.001511"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:03.143182" elapsed="0.002381"/>
</if>
<kw name="Status 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-10-10T23:13:03.145861" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:03.147862" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:03.146860" elapsed="0.001178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:03.146573" elapsed="0.001669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:03.146336" elapsed="0.002034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:03.131895" elapsed="0.016675">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:03.124125" elapsed="0.024654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:05.151852" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:05.150577" elapsed="0.001342"/>
</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-10-10T23:13:05.152625" elapsed="0.000376"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:05.152110" elapsed="0.000972"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:05.152067" elapsed="0.001067"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:05.168046" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:05.168362" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:05.168801" 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-10-10T23:13:05.158616" elapsed="0.010242"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:05.169602" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:05.169039" elapsed="0.000676"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:05.170986" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:05.170220" elapsed="0.000872"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:05.169764" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:05.168999" elapsed="0.002245"/>
</if>
<kw name="Status 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-10-10T23:13:05.171582" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:05.173571" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:05.172590" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:05.172305" elapsed="0.001557">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:05.172015" elapsed="0.001990">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:05.157736" elapsed="0.016496">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:05.149672" elapsed="0.024753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:07.177119" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:07.176309" elapsed="0.000877"/>
</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-10-10T23:13:07.177890" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:07.177387" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:07.177343" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:07.193533" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:07.193815" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:07.194040" 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-10-10T23:13:07.183999" elapsed="0.010096"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:07.194836" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:07.194284" elapsed="0.000689"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:07.196234" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:07.195425" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:07.195026" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:07.194243" elapsed="0.002215"/>
</if>
<kw name="Status 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-10-10T23:13:07.196752" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:07.198745" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:07.197744" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:07.197457" elapsed="0.001611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:07.197220" elapsed="0.002001">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:07.183132" elapsed="0.016296">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:07.175378" elapsed="0.024242">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:09.205090" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:09.204312" elapsed="0.000845"/>
</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-10-10T23:13:09.205847" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:09.205357" elapsed="0.000983"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:09.205313" elapsed="0.001079"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:09.221262" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:09.221566" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:09.221783" 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-10-10T23:13:09.212009" elapsed="0.009829"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:09.222592" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:09.222017" elapsed="0.000691"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:09.223907" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:09.223136" elapsed="0.000901"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:09.222757" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:09.221975" elapsed="0.002174"/>
</if>
<kw name="Status 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-10-10T23:13:09.224476" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:09.226519" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:09.225500" elapsed="0.001168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:09.225149" elapsed="0.001663">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:09.224891" elapsed="0.002044">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:09.211121" elapsed="0.016038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:09.203430" elapsed="0.024076">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:11.230227" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:11.229392" 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="PASS" start="2026-10-10T23:13:11.230988" elapsed="0.000400"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:11.230472" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:11.230428" elapsed="0.001091"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:11.246168" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:11.246499" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:11.246701" 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-10-10T23:13:11.237139" elapsed="0.009616"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:11.247529" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:11.246914" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:11.248888" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:11.248099" elapsed="0.000949"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:11.247697" elapsed="0.001423"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:11.246874" elapsed="0.002291"/>
</if>
<kw name="Status 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-10-10T23:13:11.249500" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:11.252028" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:11.250512" elapsed="0.001670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:11.250221" elapsed="0.002143">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:11.249924" elapsed="0.002566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:11.236282" elapsed="0.016499">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:11.228426" elapsed="0.024581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:13.255630" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:13.254794" 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-10-10T23:13:13.256428" elapsed="0.000366"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:13.255872" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:13.255827" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:13.271743" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:13.272060" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:13.272293" 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-10-10T23:13:13.262567" elapsed="0.009783"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:13.273142" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:13.272508" elapsed="0.000781"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:13.274534" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:13.273702" elapsed="0.000938"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:13.273339" elapsed="0.001369"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:13.272467" elapsed="0.002286"/>
</if>
<kw name="Status 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-10-10T23:13:13.275078" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:13.277136" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:13.276078" elapsed="0.001240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:13.275760" elapsed="0.001706">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:13.275527" elapsed="0.002148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:13.261598" elapsed="0.016284">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:13.253878" elapsed="0.024226">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:15.280921" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:15.280118" elapsed="0.000897"/>
</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-10-10T23:13:15.281731" elapsed="0.000493"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:15.281215" elapsed="0.001092"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:15.281144" elapsed="0.001217"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:15.297711" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:15.298018" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:15.298275" 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-10-10T23:13:15.288315" elapsed="0.010017"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:15.299076" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:15.298498" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:15.300454" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:15.299641" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:15.299274" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:15.298458" elapsed="0.002217"/>
</if>
<kw name="Status 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-10-10T23:13:15.300996" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:15.303004" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:15.301999" elapsed="0.001272">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:15.301681" elapsed="0.001741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:15.301449" elapsed="0.002100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:15.287427" elapsed="0.016345">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:15.279131" elapsed="0.024863">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:17.306705" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:17.305860" elapsed="0.000911"/>
</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-10-10T23:13:17.307487" elapsed="0.000358"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:17.306941" elapsed="0.000982"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:17.306897" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:17.322717" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:17.323033" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:17.323268" 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-10-10T23:13:17.313541" elapsed="0.009785"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:17.324057" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:17.323486" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:17.325454" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:17.324633" elapsed="0.001016"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:17.324264" elapsed="0.001458"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:17.323446" elapsed="0.002321"/>
</if>
<kw name="Status 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-10-10T23:13:17.326097" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:17.328231" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:17.327138" elapsed="0.001251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:17.326790" elapsed="0.001750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:17.326553" elapsed="0.002116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:17.312652" elapsed="0.016222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:17.304871" elapsed="0.024224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:19.332294" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:19.330907" elapsed="0.001458"/>
</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-10-10T23:13:19.333052" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:19.332536" elapsed="0.000990"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:19.332493" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:19.349103" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:19.349425" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:19.349731" 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-10-10T23:13:19.339161" elapsed="0.010626"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:19.350623" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:19.350039" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:19.351975" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:19.351172" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:19.350787" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:19.349907" elapsed="0.002320"/>
</if>
<kw name="Status 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-10-10T23:13:19.352534" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:19.354667" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:19.353529" elapsed="0.001297">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:19.353241" elapsed="0.001765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:19.352970" elapsed="0.002174">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:19.338322" elapsed="0.017073">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:19.330026" elapsed="0.025574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:21.358272" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:21.357448" 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-10-10T23:13:21.359029" elapsed="0.000490"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:21.358511" elapsed="0.001087"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:21.358468" elapsed="0.001182"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:21.374419" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:21.374711" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:21.374913" 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-10-10T23:13:21.365149" elapsed="0.009840"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:21.375734" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:21.375151" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:21.377100" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:21.376311" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:21.375898" elapsed="0.001409"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:21.375110" elapsed="0.002243"/>
</if>
<kw name="Status 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-10-10T23:13:21.377659" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:21.379785" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:21.378653" elapsed="0.001282">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:21.378364" elapsed="0.001746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:21.378097" elapsed="0.002168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:21.364315" elapsed="0.016153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:21.356526" elapsed="0.024131">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:23.383900" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:23.383095" 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-10-10T23:13:23.384711" elapsed="0.000390"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:23.384173" elapsed="0.001008"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:23.384129" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:23.401876" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:23.402253" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:23.402484" 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-10-10T23:13:23.390811" elapsed="0.011730"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:23.403310" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:23.402698" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:23.404671" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:23.403861" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:23.403477" elapsed="0.001370"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:23.402659" elapsed="0.002232"/>
</if>
<kw name="Status 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-10-10T23:13:23.405290" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:23.407287" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:23.406284" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:23.405944" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:23.405711" elapsed="0.002000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:23.389850" elapsed="0.018064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:23.382227" elapsed="0.026032">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:25.410945" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:25.410136" elapsed="0.000904"/>
</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-10-10T23:13:25.411731" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:25.411238" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:25.411167" elapsed="0.001116"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:25.429042" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:25.429402" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:25.429605" 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-10-10T23:13:25.417709" 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-10-10T23:13:25.430412" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:25.429815" elapsed="0.000711"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:25.431820" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:25.430948" elapsed="0.000979"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:25.430574" elapsed="0.001443"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:25.429776" elapsed="0.002285"/>
</if>
<kw name="Status 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-10-10T23:13:25.432420" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:25.434869" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:25.433416" elapsed="0.001631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:25.433098" elapsed="0.002127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:25.432837" elapsed="0.002519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:25.416840" elapsed="0.018797">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:25.409155" elapsed="0.026673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:27.438448" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:27.437613" 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-10-10T23:13:27.439250" elapsed="0.000366"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:27.438691" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:27.438646" elapsed="0.001103"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:27.455000" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:27.455329" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:27.455536" 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-10-10T23:13:27.445446" elapsed="0.010145"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:27.456356" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:27.455749" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:27.457696" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:27.456880" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:27.456521" elapsed="0.001351"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:27.455708" elapsed="0.002210"/>
</if>
<kw name="Status 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-10-10T23:13:27.458298" elapsed="0.000320"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:27.460363" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:27.459369" elapsed="0.001142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:27.459044" elapsed="0.001610">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:27.458726" elapsed="0.002152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:27.444571" elapsed="0.016540">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:27.436689" elapsed="0.024651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:29.464136" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:29.463304" 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-10-10T23:13:29.464918" elapsed="0.000802"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:29.464419" elapsed="0.001385"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:29.464375" elapsed="0.001483"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:29.483128" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:29.483455" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:29.483681" 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-10-10T23:13:29.471847" elapsed="0.011890"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:29.484516" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:29.483899" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:29.485876" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:29.485069" elapsed="0.000991"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:29.484682" elapsed="0.001448"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:29.483858" elapsed="0.002317"/>
</if>
<kw name="Status 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-10-10T23:13:29.486509" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:29.488662" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:29.487521" elapsed="0.001378">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:29.487182" elapsed="0.001890">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:29.486927" elapsed="0.002303">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:29.470979" elapsed="0.018459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:29.462364" elapsed="0.027270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:31.492383" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:31.491534" 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-10-10T23:13:31.493138" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:31.492628" elapsed="0.000979"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:31.492583" elapsed="0.001078"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:31.509576" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:31.509870" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:31.510098" 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-10-10T23:13:31.499161" elapsed="0.010992"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:31.510880" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:31.510341" elapsed="0.000675"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:31.512277" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:31.511464" elapsed="0.001003"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:31.511066" elapsed="0.001472"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:31.510300" elapsed="0.002281"/>
</if>
<kw name="Status 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-10-10T23:13:31.512880" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:31.514896" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:31.513887" elapsed="0.001185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:31.513599" elapsed="0.001653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:31.513360" elapsed="0.002020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:31.498325" elapsed="0.017256">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:31.490574" elapsed="0.025198">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:33.519669" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:33.518024" elapsed="0.001719"/>
</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-10-10T23:13:33.520637" elapsed="0.000488"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:33.519926" elapsed="0.001314"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:33.519879" elapsed="0.001417"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:33.537853" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:33.538164" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:33.538520" 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-10-10T23:13:33.527362" elapsed="0.011215"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:33.539362" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:33.538736" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:33.540726" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:33.539886" elapsed="0.000946"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:33.539529" elapsed="0.001371"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:33.538696" elapsed="0.002247"/>
</if>
<kw name="Status 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-10-10T23:13:33.541302" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:33.543373" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:33.542301" elapsed="0.001227">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:33.541956" elapsed="0.001720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:33.541723" elapsed="0.002077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:33.526387" elapsed="0.017637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:33.516804" elapsed="0.027441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:35.547031" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:35.546231" elapsed="0.000871"/>
</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-10-10T23:13:35.547817" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:35.547299" elapsed="0.001011"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:35.547255" elapsed="0.001107"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:35.562739" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:35.563056" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:35.563290" 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-10-10T23:13:35.553853" elapsed="0.009495"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:35.564083" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:35.563508" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:35.565466" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:35.564641" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:35.564283" elapsed="0.001358"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:35.563468" elapsed="0.002218"/>
</if>
<kw name="Status 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-10-10T23:13:35.566006" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:35.568079" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:35.567018" elapsed="0.001246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:35.566697" elapsed="0.001717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:35.566460" elapsed="0.002078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:35.553006" elapsed="0.015733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:35.545271" elapsed="0.023660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:37.572232" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:37.571421" elapsed="0.000879"/>
</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-10-10T23:13:37.572951" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:37.572463" elapsed="0.000983"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:37.572421" elapsed="0.001077"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:37.591450" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:37.591735" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:37.591952" 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-10-10T23:13:37.579237" elapsed="0.012791"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:37.592764" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:37.592184" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:37.594231" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:37.593409" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:37.592928" elapsed="0.001482"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:37.592145" elapsed="0.002308"/>
</if>
<kw name="Status 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-10-10T23:13:37.594750" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:37.596724" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:37.595738" elapsed="0.001136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:37.595451" elapsed="0.001590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:37.595217" elapsed="0.001955">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:37.578356" elapsed="0.019050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:37.570467" elapsed="0.027207">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:39.600621" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:39.599715" 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-10-10T23:13:39.601475" elapsed="0.000432"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:39.600879" elapsed="0.001137"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:39.600832" elapsed="0.001242"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:39.619714" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:39.620157" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:39.620495" 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-10-10T23:13:39.608296" elapsed="0.012280"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:39.621691" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:39.620809" elapsed="0.001052"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:39.623755" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:39.622572" elapsed="0.001341"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:39.621940" elapsed="0.002108"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:39.620750" elapsed="0.003370"/>
</if>
<kw name="Status 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-10-10T23:13:39.624612" elapsed="0.000483"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:39.628180" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:39.626097" elapsed="0.002287">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:39.625641" elapsed="0.002900">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:39.625297" elapsed="0.003368">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:39.607327" elapsed="0.021754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:39.598677" elapsed="0.030646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:41.632349" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:41.631432" 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-10-10T23:13:41.633269" elapsed="0.000395"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:41.632620" elapsed="0.001129"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:41.632569" elapsed="0.001239"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:41.651546" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:41.651870" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:41.652130" 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-10-10T23:13:41.639776" elapsed="0.012411"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:41.653110" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:41.652416" elapsed="0.000839"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:41.654541" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:41.653684" elapsed="0.000959"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:41.653308" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:41.652362" elapsed="0.002391"/>
</if>
<kw name="Status 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-10-10T23:13:41.655080" elapsed="0.000390"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:41.657175" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:41.656157" elapsed="0.001201">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:41.655830" elapsed="0.001675">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:41.655584" elapsed="0.002167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:41.638765" elapsed="0.019224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:41.630267" elapsed="0.027948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:43.660821" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:43.660011" elapsed="0.000877"/>
</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-10-10T23:13:43.661629" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:43.661078" elapsed="0.001014"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:43.661035" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:43.678543" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:43.678837" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:43.679081" 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-10-10T23:13:43.668068" elapsed="0.011068"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:43.679875" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:43.679338" elapsed="0.000673"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:43.681249" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:43.680447" elapsed="0.000909"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:43.680061" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:43.679295" elapsed="0.002172"/>
</if>
<kw name="Status 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-10-10T23:13:43.681759" elapsed="0.000326"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:43.683750" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:43.682742" elapsed="0.001289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:43.682457" elapsed="0.001803">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:43.682219" elapsed="0.002204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:43.667215" elapsed="0.017413">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:43.659085" elapsed="0.025735">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:45.687589" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:45.686767" elapsed="0.000890"/>
</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-10-10T23:13:45.688408" elapsed="0.000684"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:45.687826" elapsed="0.001353"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:45.687782" elapsed="0.001483"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:45.705698" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:45.706004" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:45.706237" 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-10-10T23:13:45.694841" elapsed="0.011454"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:45.707080" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:45.706454" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:45.708467" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:45.707652" elapsed="0.001022"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:45.707274" elapsed="0.001471"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:45.706413" elapsed="0.002376"/>
</if>
<kw name="Status 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-10-10T23:13:45.709106" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:45.711099" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:45.710099" elapsed="0.001180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:45.709783" elapsed="0.001644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:45.709551" elapsed="0.002000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:45.693949" elapsed="0.017802">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:45.685851" elapsed="0.026093">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:47.715281" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:47.713894" elapsed="0.001457"/>
</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-10-10T23:13:47.716039" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:47.715523" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:47.715479" elapsed="0.001088"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:47.732251" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:47.732617" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:47.732971" 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-10-10T23:13:47.722046" elapsed="0.011022"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:47.733869" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:47.733300" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:47.735369" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:47.734505" elapsed="0.000972"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:47.734077" elapsed="0.001470"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:47.733244" elapsed="0.002348"/>
</if>
<kw name="Status 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-10-10T23:13:47.735887" elapsed="0.000392"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:47.738059" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:47.737003" elapsed="0.001236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:47.736621" elapsed="0.001766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:47.736388" elapsed="0.002121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:47.721180" elapsed="0.017526">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:47.712921" elapsed="0.025972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:49.741654" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:49.740817" 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-10-10T23:13:49.742482" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:49.741889" elapsed="0.001031"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:49.741846" elapsed="0.001126"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:49.760558" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:49.760941" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:49.761288" 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-10-10T23:13:49.748591" elapsed="0.012770"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:49.762374" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:49.761573" elapsed="0.000934"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:49.763885" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:49.763032" elapsed="0.000991"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:49.762558" elapsed="0.001537"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:49.761519" elapsed="0.002623"/>
</if>
<kw name="Status 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-10-10T23:13:49.764482" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:49.766533" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:49.765506" elapsed="0.001187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:49.765179" elapsed="0.001664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:49.764910" elapsed="0.002058">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:49.747720" elapsed="0.019513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:49.739858" elapsed="0.027577">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:51.772710" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:51.771854" 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-10-10T23:13:51.773495" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:51.772951" elapsed="0.000985"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:51.772907" elapsed="0.001104"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:51.790756" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:51.791168" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:51.791422" 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-10-10T23:13:51.779472" elapsed="0.012004"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:51.792283" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:51.791632" elapsed="0.000769"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:51.793657" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:51.792810" elapsed="0.000950"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:51.792450" elapsed="0.001379"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:51.791593" elapsed="0.002279"/>
</if>
<kw name="Status 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-10-10T23:13:51.794188" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:51.796179" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:51.795181" elapsed="0.001185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:51.794870" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:51.794634" elapsed="0.002001">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:51.778612" elapsed="0.018223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:51.770919" elapsed="0.026217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:53.799457" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:53.798675" elapsed="0.000844"/>
</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-10-10T23:13:53.800175" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:53.799675" elapsed="0.000979"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:53.799635" elapsed="0.001072"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:53.815564" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:53.815828" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:53.816052" 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-10-10T23:13:53.806469" elapsed="0.009637"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:53.816832" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:53.816295" elapsed="0.000650"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:53.818184" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:53.817415" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:53.817023" elapsed="0.001367"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:53.816254" elapsed="0.002179"/>
</if>
<kw name="Status 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-10-10T23:13:53.818728" elapsed="0.000324"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:53.821145" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:53.819711" elapsed="0.001612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:53.819414" elapsed="0.002054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:53.819155" elapsed="0.002437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:53.805598" elapsed="0.016267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:53.797854" elapsed="0.024230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:55.824710" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:55.823862" 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-10-10T23:13:55.825514" elapsed="0.000358"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:55.824959" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:55.824916" elapsed="0.001116"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:55.841637" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:55.841915" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:55.842142" 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-10-10T23:13:55.831555" elapsed="0.010672"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:55.842933" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:55.842386" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:55.844333" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:55.843525" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:55.843132" elapsed="0.001375"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:55.842347" elapsed="0.002206"/>
</if>
<kw name="Status 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-10-10T23:13:55.844852" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:55.846828" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:55.845836" elapsed="0.001138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:55.845549" elapsed="0.001599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:55.845318" elapsed="0.002074">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:55.830688" elapsed="0.016913">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:55.822916" elapsed="0.024876">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:57.850268" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:57.849456" elapsed="0.000879"/>
</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-10-10T23:13:57.851025" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:57.850506" elapsed="0.000992"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:57.850463" elapsed="0.001089"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:57.868403" level="INFO">GET Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:57.868679" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:57.868898" 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-10-10T23:13:57.857504" elapsed="0.011448"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:57.869713" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:57.869137" elapsed="0.000707"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:57.871119" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:57.870333" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:57.869902" elapsed="0.001425"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:57.869097" elapsed="0.002275"/>
</if>
<kw name="Status 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-10-10T23:13:57.871674" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:57.873674" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:57.872674" elapsed="0.001244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:57.872383" elapsed="0.001710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:57.872119" elapsed="0.002133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:57.856624" elapsed="0.017835">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:57.848582" elapsed="0.026071">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-10-10T23:13:57.874833" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:12:26.651084" elapsed="91.224005">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:57.875542" elapsed="0.000045"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:57.877376" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-10T23:13:58.197254" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:13:58.197507" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:13:58.197599" 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-10-10T23:13:58.197684" 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-10-10T23:13:57.876980" elapsed="0.320751"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:58.198758" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:13:58.198228" elapsed="0.000618"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:58.199620" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-10T23:13:58.542138" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:13:58.542427" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:13:58.542520" 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-10-10T23:13:58.542672" 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-10-10T23:13:58.199282" elapsed="0.343442"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:58.543570" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-10T23:13:58.621927" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:13:58.622241" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-10T23:13:58.622338" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:13:58.622421" 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-10-10T23:13:58.543219" elapsed="0.079250"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:58.623143" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-10T23:13:58.671606" 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-10-10T23:13:58.622911" elapsed="0.048830"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:58.692432" level="INFO">DELETE Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:58.692534" level="INFO">DELETE Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:58.692721" 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-10-10T23:13:58.672083" elapsed="0.020692"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:58.702031" level="INFO">DELETE Request : url=http://10.30.171.136: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=node018zqja7lliprdcbohdq8124ou1.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:58.702319" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:13:58.702540" 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-10-10T23:13:58.693116" elapsed="0.009479"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-10T23:13:57.876233" elapsed="0.826495"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-10-10T23:12:25.970837" elapsed="92.731978">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCEkp+PNG6pEPS1eyoXc6mJ4HDZtzsQTR3NyEnd5MJ16paS1vGPtVeVCoX3ucXmkqM/wrnGzv2dZL0JtdnrlkIod5ecC62Bqb6qhCOkDA6J2InOizoulnGc7ouWG+FU76hcfx+GeJCoBobPGmgMUotwt17ZYh13YyMdWDmeY6a52ACi9bccaLsjcGuK13x3IEquH9+6CnC5Q+CxYQLGE/+oHvf3CfyGDJ0PzfmEaTaaxNKJPVlFc7JnE5Tffr8O2YZ2MY32kAmF9xn7SEcZjn9hs+YIz5Vtbl9Uxc//egsLssqrjq5wkCr8XDwPmFnMXCiYf6WG2XmQ9TF+KR8+ONcL","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-10-10T23:13:58.705631" level="INFO">Creating Session using : alias=session, url=http://10.30.171.136:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x78b33034e950&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-10T23:13:58.705163" elapsed="0.000771"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:58.706595" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-10T23:13:58.719774" 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-10-10T23:13:58.706394" elapsed="0.013501"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:58.720544" 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-10-10T23:13:58.906777" 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-10-10T23:13:58.720344" elapsed="0.186572"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:58.907603" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-10T23:13:58.955864" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:13:58.956157" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs7...</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-10-10T23:13:58.907382" elapsed="0.048875"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:13:58.960714" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs7...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:13:58.956799" elapsed="0.004018"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-10-10T23:13:58.704536" elapsed="0.256408"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:13:59.005587" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:13:58.962040" elapsed="0.043690"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:13:59.014253" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:13:59.006157" elapsed="0.008216"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-10T23:13:58.961357" elapsed="0.053144"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-10T23:13:59.015880" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_global_credentials.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_global_credentials.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:13:59.016224" 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-10-10T23:13:59.015607" elapsed="0.000675"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:13:59.017081" 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-10-10T23:13:59.016626" elapsed="0.000510"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:13:59.017902" 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-10-10T23:13:59.017500" elapsed="0.000456"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:59.048559" level="INFO">PUT Request : url=http://10.30.171.136: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-10-10T23:13:59.048665" level="INFO">PUT Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0l96wxbyixijf1r1df0f3qkgq12.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 09-Oct-2026 23:13:59 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:59.048867" 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-10-10T23:13:59.018302" elapsed="0.030617"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:13:59.049374" elapsed="0.000893"/>
</kw>
<arg>root</arg>
<arg>root</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-10-10T23:13:59.014861" elapsed="0.035533"/>
</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-10-10T23:13:59.053224" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:13:59.053505" 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-10-10T23:13:59.052918" elapsed="0.000642"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:13:59.054681" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:13:59.053927" elapsed="0.000846"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:59.052336" elapsed="0.002548"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:59.051691" elapsed="0.003239"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-10T23:13:59.055336" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:59.054987" elapsed="0.000524"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:59.051644" elapsed="0.003916"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:13:59.056506" 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-10-10T23:13:59.055879" elapsed="0.000687"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:13:59.057383" 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-10-10T23:13:59.056915" elapsed="0.000522"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:13:59.058236" 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-10-10T23:13:59.057764" elapsed="0.000529"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:13:59.059028" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0u...</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-10-10T23:13:59.058616" elapsed="0.000468"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:59.077700" level="INFO">POST Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"
        }
    }
}
 
 </msg>
<msg time="2026-10-10T23:13:59.077807" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:59.077979" 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-10-10T23:13:59.059406" elapsed="0.018656"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:13:59.078448" elapsed="0.000789"/>
</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-10-10T23:13:59.050892" elapsed="0.028471"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:13:59.080094" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-10T23:13:59.396286" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:13:59.396600" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:13:59.396674" 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-10-10T23:13:59.396746" 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-10-10T23:13:59.079731" elapsed="0.317064"/>
</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-10-10T23:13:59.398734" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:13:59.398412" elapsed="0.000349"/>
</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-10-10T23:13:59.399089" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:59.398839" elapsed="0.000302"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:59.398816" elapsed="0.000350"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:13:59.409674" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:13:59.409826" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:13:59.409925" 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-10-10T23:13:59.401902" elapsed="0.008125"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:13:59.410390" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:13:59.410109" elapsed="0.000332"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:13:59.410969" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:13:59.410625" elapsed="0.000407"/>
</kw>
<status status="PASS" start="2026-10-10T23:13:59.410464" elapsed="0.000600"/>
</branch>
<status status="PASS" start="2026-10-10T23:13:59.410091" elapsed="0.000993"/>
</if>
<kw name="Status 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-10-10T23:13:59.411234" elapsed="0.000142"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:13:59.411671" elapsed="0.000415"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:13:59.411540" elapsed="0.000582"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:13:59.412753" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:13:59.412337" elapsed="0.000490">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:13:59.412209" elapsed="0.000687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:13:59.411429" elapsed="0.001520">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:13:59.401528" elapsed="0.011528">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:13:59.398028" elapsed="0.015114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:01.415849" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:01.414986" 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-10-10T23:14:01.416688" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:01.416111" elapsed="0.000698"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:01.416065" elapsed="0.000794"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:01.433568" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:01.433951" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:01.434218" 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-10-10T23:14:01.422351" elapsed="0.011927"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:01.435098" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:01.434439" elapsed="0.000807"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:01.436488" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:01.435662" elapsed="0.000933"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:01.435299" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:01.434398" elapsed="0.002311"/>
</if>
<kw name="Status 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-10-10T23:14:01.437027" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:01.438037" elapsed="0.000908"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:01.437716" elapsed="0.001332"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:01.440496" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:01.439526" elapsed="0.001120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:01.439238" elapsed="0.001554">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:01.437482" elapsed="0.003431">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:01.421473" elapsed="0.019663">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:01.414042" elapsed="0.027318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:03.444609" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:03.443753" 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-10-10T23:14:03.445496" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:03.444940" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:03.444895" elapsed="0.000798"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:03.461143" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:03.461479" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:03.461701" 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-10-10T23:14:03.451383" elapsed="0.010370"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:03.462521" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:03.461911" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:03.463873" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:03.463084" elapsed="0.000892"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:03.462688" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:03.461871" elapsed="0.002248"/>
</if>
<kw name="Status 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-10-10T23:14:03.464455" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:03.465459" elapsed="0.001003"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:03.465141" elapsed="0.001400"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:03.468038" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:03.466986" elapsed="0.001233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:03.466703" elapsed="0.001665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:03.464880" elapsed="0.003609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:03.450510" elapsed="0.018178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:03.442844" elapsed="0.026104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:05.471687" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:05.470849" 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="NOT RUN" start="2026-10-10T23:14:05.472470" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:05.471925" elapsed="0.000664"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:05.471880" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:05.488283" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:05.488581" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:05.488780" 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-10-10T23:14:05.478132" elapsed="0.010701"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:05.489591" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:05.488987" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:05.490954" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:05.490164" elapsed="0.001010"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:05.489753" elapsed="0.001524"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:05.488948" elapsed="0.002380"/>
</if>
<kw name="Status 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-10-10T23:14:05.491624" elapsed="0.000305"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:05.492618" elapsed="0.001412"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:05.492330" elapsed="0.001783"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:05.495621" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:05.494612" elapsed="0.001161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:05.494312" elapsed="0.001607">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:05.492060" elapsed="0.004016">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:05.477284" elapsed="0.019121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:05.469885" elapsed="0.026714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:07.499350" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:07.498501" elapsed="0.000920"/>
</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-10-10T23:14:07.500127" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:07.499604" elapsed="0.000672"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:07.499557" elapsed="0.000773"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:07.516771" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:07.517099" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:07.517335" 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-10-10T23:14:07.505935" elapsed="0.011455"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:07.518129" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:07.517546" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:07.519495" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:07.518683" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:07.518325" elapsed="0.001341"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:07.517507" elapsed="0.002203"/>
</if>
<kw name="Status 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-10-10T23:14:07.520034" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:07.521030" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:07.520723" elapsed="0.001344"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:07.523516" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:07.522543" elapsed="0.001121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:07.522259" elapsed="0.001548">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:07.520486" elapsed="0.003563">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:07.505085" elapsed="0.019208">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:07.497518" elapsed="0.026970">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:09.527152" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:09.526356" 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="NOT RUN" start="2026-10-10T23:14:09.527916" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:09.527422" elapsed="0.000637"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:09.527378" elapsed="0.000732"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:09.544439" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:09.544726" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:09.544947" 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-10-10T23:14:09.534412" elapsed="0.010589"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:09.545769" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:09.545217" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:09.547138" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:09.546364" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:09.545931" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:09.545148" elapsed="0.002240"/>
</if>
<kw name="Status 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-10-10T23:14:09.547686" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:09.548678" elapsed="0.000924"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:09.548390" elapsed="0.001294"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:09.551166" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:09.550172" elapsed="0.001174">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:09.549845" elapsed="0.001766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:09.548123" elapsed="0.003620">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:09.533473" elapsed="0.018474">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:09.525440" elapsed="0.026741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:11.554845" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:11.554008" 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="NOT RUN" start="2026-10-10T23:14:11.555640" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:11.555109" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:11.555063" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:11.573153" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:11.573489" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:11.573689" 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-10-10T23:14:11.561449" elapsed="0.012292"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:11.574503" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:11.573898" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:11.575853" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:11.575067" elapsed="0.000890"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:11.574665" elapsed="0.001385"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:11.573858" elapsed="0.002239"/>
</if>
<kw name="Status 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-10-10T23:14:11.576435" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:11.577430" elapsed="0.000981"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:11.577108" elapsed="0.001384"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:11.579897" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:11.578931" elapsed="0.001230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:11.578649" elapsed="0.001694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:11.576851" elapsed="0.003613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:11.560575" elapsed="0.020091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:11.553104" elapsed="0.027752">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:13.584128" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:13.583336" 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-10-10T23:14:13.584899" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:13.584400" elapsed="0.000655"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:13.584354" elapsed="0.000757"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:13.600505" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:13.600799" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:13.601042" 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-10-10T23:14:13.590606" elapsed="0.010493"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:13.601850" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:13.601294" elapsed="0.000669"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:13.603317" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:13.602433" elapsed="0.000990"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:13.602012" elapsed="0.001480"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:13.601253" elapsed="0.002282"/>
</if>
<kw name="Status 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-10-10T23:14:13.603829" elapsed="0.000557"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:13.605051" elapsed="0.000915"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:13.604742" elapsed="0.001331"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:13.607517" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:13.606554" elapsed="0.001114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:13.606271" elapsed="0.001541">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:13.604501" elapsed="0.003431">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:13.589733" elapsed="0.018440">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:13.582415" elapsed="0.025983">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:15.611131" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:15.610308" 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-10-10T23:14:15.611908" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:15.611410" elapsed="0.000636"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:15.611363" elapsed="0.000737"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:15.627591" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:15.627913" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:15.628228" 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-10-10T23:14:15.617718" elapsed="0.010568"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:15.629139" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:15.628444" elapsed="0.000847"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:15.630533" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:15.629716" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:15.629341" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:15.628404" elapsed="0.002347"/>
</if>
<kw name="Status 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-10-10T23:14:15.631088" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:15.632101" elapsed="0.001588"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:15.631786" elapsed="0.001985"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:15.635262" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:15.634277" elapsed="0.001138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:15.633935" elapsed="0.001628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:15.631547" elapsed="0.004137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:15.616840" elapsed="0.019044">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:15.609330" elapsed="0.026765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:17.638719" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:17.637885" elapsed="0.000900"/>
</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-10-10T23:14:17.639517" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:17.638958" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:17.638914" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:17.654777" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:17.655178" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:17.655415" 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-10-10T23:14:17.645281" elapsed="0.010189"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:17.656228" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:17.655629" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:17.657584" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:17.656766" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:17.656395" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:17.655589" elapsed="0.002213"/>
</if>
<kw name="Status 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-10-10T23:14:17.658121" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:17.659179" elapsed="0.000936"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:17.658821" elapsed="0.001400"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:17.661638" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:17.660669" elapsed="0.001117">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:17.660387" elapsed="0.001545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:17.658585" elapsed="0.003491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:17.644401" elapsed="0.017911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:17.636936" elapsed="0.025567">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:19.665285" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:19.664447" 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="NOT RUN" start="2026-10-10T23:14:19.666168" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:19.665628" elapsed="0.000693"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:19.665584" elapsed="0.000789"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:19.682369" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:19.682662" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:19.682882" 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-10-10T23:14:19.672440" elapsed="0.010497"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:19.683726" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:19.683119" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:19.685115" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:19.684298" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:19.683888" elapsed="0.001435"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:19.683078" elapsed="0.002288"/>
</if>
<kw name="Status 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-10-10T23:14:19.685662" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:19.686792" elapsed="0.001006"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:19.686450" elapsed="0.001429"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:19.689409" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:19.688413" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:19.688090" elapsed="0.001611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:19.686171" elapsed="0.003649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:19.671516" elapsed="0.018505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:19.663376" elapsed="0.026980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:21.693117" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:21.692325" elapsed="0.000861"/>
</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-10-10T23:14:21.693893" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:21.693389" elapsed="0.000621"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:21.693345" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:21.708866" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:21.709226" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:21.709430" 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-10-10T23:14:21.699595" elapsed="0.009888"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:21.710262" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:21.709637" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:21.711614" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:21.710792" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:21.710426" elapsed="0.001361"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:21.709599" elapsed="0.002231"/>
</if>
<kw name="Status 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-10-10T23:14:21.712150" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:21.713236" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:21.712834" elapsed="0.001452"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:21.715706" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:21.714729" elapsed="0.001124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:21.714448" elapsed="0.001547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:21.712600" elapsed="0.003546">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:21.698709" elapsed="0.017763">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:21.691369" elapsed="0.025307">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:23.719797" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:23.718973" elapsed="0.000891"/>
</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-10-10T23:14:23.720576" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:23.720052" elapsed="0.000641"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:23.719989" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:23.735617" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:23.735905" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:23.736151" 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-10-10T23:14:23.726318" elapsed="0.009916"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:23.736930" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:23.736391" elapsed="0.000672"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:23.738322" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:23.737515" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:23.737116" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:23.736352" elapsed="0.002185"/>
</if>
<kw name="Status 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-10-10T23:14:23.738832" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:23.739841" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:23.739543" elapsed="0.001306"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:23.742314" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:23.741350" elapsed="0.001114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:23.741008" elapsed="0.001599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:23.739306" elapsed="0.003506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:23.725453" elapsed="0.017565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:23.718104" elapsed="0.025168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:25.745921" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:25.745116" elapsed="0.000871"/>
</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-10-10T23:14:25.746702" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:25.746178" elapsed="0.000643"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:25.746135" elapsed="0.000736"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:25.761856" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:25.762227" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:25.762436" 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-10-10T23:14:25.752647" elapsed="0.009842"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:25.763269" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:25.762649" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:25.764639" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:25.763812" elapsed="0.000933"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:25.763435" elapsed="0.001376"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:25.762610" elapsed="0.002243"/>
</if>
<kw name="Status 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-10-10T23:14:25.765174" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:25.766174" elapsed="0.003443"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:25.765860" elapsed="0.003838"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:25.771157" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:25.770178" elapsed="0.001161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:25.769864" elapsed="0.001717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:25.765625" elapsed="0.006080">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:25.751699" elapsed="0.020206">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:25.744175" elapsed="0.027940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:27.774842" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:27.774004" 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="NOT RUN" start="2026-10-10T23:14:27.775648" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:27.775120" elapsed="0.000647"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:27.775072" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:27.790598" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:27.790888" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:27.791116" 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-10-10T23:14:27.781372" elapsed="0.009799"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:27.791897" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:27.791359" elapsed="0.000650"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:27.793333" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:27.792481" elapsed="0.000958"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:27.792084" elapsed="0.001423"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:27.791319" elapsed="0.002231"/>
</if>
<kw name="Status 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-10-10T23:14:27.793846" elapsed="0.000479"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:27.794959" elapsed="0.000928"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:27.794670" elapsed="0.001295"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:27.797426" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:27.796463" elapsed="0.001205">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:27.796151" elapsed="0.001666">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:27.794434" elapsed="0.003501">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:27.780496" elapsed="0.017673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:27.773034" elapsed="0.025359">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:29.801152" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:29.800338" 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="NOT RUN" start="2026-10-10T23:14:29.801916" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:29.801422" elapsed="0.000612"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:29.801378" elapsed="0.000739"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:29.818570" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:29.818873" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:29.819129" 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-10-10T23:14:29.808079" 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-10-10T23:14:29.819931" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:29.819377" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:29.821411" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:29.820584" elapsed="0.000933"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:29.820216" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:29.819336" elapsed="0.002296"/>
</if>
<kw name="Status 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-10-10T23:14:29.821930" elapsed="0.000463"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:29.823027" elapsed="0.000932"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:29.822738" elapsed="0.001327"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:29.825519" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:29.824550" elapsed="0.001117">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:29.824263" elapsed="0.001547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:29.822504" elapsed="0.003429">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:29.807231" elapsed="0.018941">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:29.799370" elapsed="0.027027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:31.829166" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:31.828332" 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-10-10T23:14:31.829933" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:31.829436" elapsed="0.000635"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:31.829391" elapsed="0.000732"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:31.845603" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:31.845885" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:31.846116" 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-10-10T23:14:31.835660" elapsed="0.010514"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:31.847001" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:31.846364" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:31.848413" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:31.847600" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:31.847231" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:31.846322" elapsed="0.002316"/>
</if>
<kw name="Status 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-10-10T23:14:31.848933" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:31.849931" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:31.849646" elapsed="0.001294"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:31.852412" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:31.851440" elapsed="0.001119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:31.851124" elapsed="0.001581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:31.849413" elapsed="0.003411">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:31.834777" elapsed="0.018246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:31.827384" elapsed="0.025883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:33.856546" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:33.855703" elapsed="0.000910"/>
</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-10-10T23:14:33.857325" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:33.856783" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:33.856740" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:33.872357" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:33.872739" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:33.872962" 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-10-10T23:14:33.863009" elapsed="0.010007"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:33.873778" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:33.873226" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:33.875225" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:33.874375" elapsed="0.000959"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:33.873941" elapsed="0.001462"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:33.873157" elapsed="0.002291"/>
</if>
<kw name="Status 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-10-10T23:14:33.875746" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:33.876747" elapsed="0.000926"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:33.876455" elapsed="0.001298"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:33.879280" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:33.878298" elapsed="0.001136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:33.877949" elapsed="0.001631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:33.876216" elapsed="0.003484">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:33.862149" elapsed="0.017752">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:33.854171" elapsed="0.025948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:35.882875" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:35.882071" elapsed="0.000870"/>
</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-10-10T23:14:35.883770" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:35.883265" elapsed="0.000625"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:35.883217" elapsed="0.000726"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:35.901250" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:35.901540" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:35.901741" 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-10-10T23:14:35.889554" elapsed="0.012241"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:35.902565" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:35.901952" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:35.903924" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:35.903114" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:35.902731" elapsed="0.001396"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:35.901913" elapsed="0.002259"/>
</if>
<kw name="Status 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-10-10T23:14:35.904506" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:35.905501" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:35.905184" elapsed="0.001327"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:35.908465" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:35.906967" elapsed="0.001647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:35.906677" elapsed="0.002125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:35.904926" elapsed="0.004004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:35.888666" elapsed="0.020495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:35.881107" elapsed="0.028370">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:37.912080" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:37.911283" elapsed="0.000866"/>
</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-10-10T23:14:37.912857" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:37.912358" elapsed="0.000617"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:37.912311" elapsed="0.000717"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:37.927327" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:37.927621" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:37.927821" 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-10-10T23:14:37.918605" elapsed="0.009269"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:37.928645" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:37.928058" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:37.929969" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:37.929186" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:37.928809" elapsed="0.001358"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:37.927993" elapsed="0.002249"/>
</if>
<kw name="Status 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-10-10T23:14:37.930541" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:37.931533" elapsed="0.000925"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:37.931243" elapsed="0.001294"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:37.933963" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:37.932993" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:37.932697" elapsed="0.001631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:37.930957" elapsed="0.003491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:37.917719" elapsed="0.017023">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:37.910371" elapsed="0.024566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:39.937639" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:39.936765" 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-10-10T23:14:39.938443" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:39.937876" elapsed="0.000686"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:39.937831" elapsed="0.000782"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:39.955439" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:39.955721" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:39.955944" 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-10-10T23:14:39.944583" elapsed="0.011417"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:39.956771" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:39.956187" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:39.958143" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:39.957357" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:39.956937" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:39.956146" elapsed="0.002249"/>
</if>
<kw name="Status 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-10-10T23:14:39.958695" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:39.959697" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:39.959409" elapsed="0.001299"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:39.962154" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:39.961178" elapsed="0.001158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:39.960868" elapsed="0.001613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:39.959145" elapsed="0.003554">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:39.943689" elapsed="0.019217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:39.935809" elapsed="0.027314">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:41.965793" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:41.964971" elapsed="0.000890"/>
</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-10-10T23:14:41.966588" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:41.966058" elapsed="0.000648"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:41.965987" elapsed="0.000769"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:41.983509" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:41.983790" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:41.983991" 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-10-10T23:14:41.972423" elapsed="0.011644"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:41.984811" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:41.984266" elapsed="0.000658"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:41.986183" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:41.985398" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:41.984973" elapsed="0.001425"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:41.984221" elapsed="0.002221"/>
</if>
<kw name="Status 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-10-10T23:14:41.986735" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:41.987723" elapsed="0.000927"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:41.987437" elapsed="0.001291"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:41.990168" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:41.989229" elapsed="0.001121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:41.988887" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:41.987174" elapsed="0.003541">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:41.971536" elapsed="0.019382">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:41.964041" elapsed="0.027096">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:43.994289" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:43.993456" 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="NOT RUN" start="2026-10-10T23:14:43.995078" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:43.994530" elapsed="0.000697"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:43.994486" elapsed="0.000799"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:44.011544" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:44.011825" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:44.012070" 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-10-10T23:14:44.000780" elapsed="0.011346"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:44.012871" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:44.012322" elapsed="0.000663"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:44.014309" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:44.013504" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:44.013059" elapsed="0.001424"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:44.012281" elapsed="0.002246"/>
</if>
<kw name="Status 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-10-10T23:14:44.014825" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:44.015808" elapsed="0.000942"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:44.015524" elapsed="0.001305"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:44.018315" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:44.017327" elapsed="0.001224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:44.016989" elapsed="0.001711">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:44.015293" elapsed="0.003528">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:43.999900" elapsed="0.019144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:43.991982" elapsed="0.027289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:46.021817" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:46.020992" 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="NOT RUN" start="2026-10-10T23:14:46.022603" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:46.022077" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:46.022033" elapsed="0.000741"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:46.038490" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:46.038767" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:46.038965" 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-10-10T23:14:46.028313" elapsed="0.010730"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:46.039813" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:46.039232" elapsed="0.000711"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:46.041271" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:46.040450" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:46.039994" elapsed="0.001454"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:46.039163" elapsed="0.002329"/>
</if>
<kw name="Status 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-10-10T23:14:46.041803" elapsed="0.000468"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:46.042921" elapsed="0.001439"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:46.042620" elapsed="0.001823"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:46.045894" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:46.044908" elapsed="0.001158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:46.044609" elapsed="0.001637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:46.042383" elapsed="0.003987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:46.027437" elapsed="0.019133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:46.020102" elapsed="0.026655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:48.049435" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:48.048596" elapsed="0.000908"/>
</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-10-10T23:14:48.050219" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:48.049674" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:48.049629" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:48.066817" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:48.067136" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:48.067369" 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-10-10T23:14:48.055894" elapsed="0.011530"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:48.068285" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:48.067577" elapsed="0.000827"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:48.069647" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:48.068825" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:48.068456" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:48.067538" elapsed="0.002328"/>
</if>
<kw name="Status 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-10-10T23:14:48.070217" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:48.071185" elapsed="0.000928"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:48.070878" elapsed="0.001342"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:48.073662" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:48.072682" elapsed="0.001128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:48.072399" elapsed="0.001556">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:48.070641" elapsed="0.003465">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:48.055038" elapsed="0.019325">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:48.047655" elapsed="0.026906">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:50.077447" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:50.076501" 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="NOT RUN" start="2026-10-10T23:14:50.078255" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:50.077686" elapsed="0.000689"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:50.077643" elapsed="0.000783"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:50.094714" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:50.095110" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:50.095369" 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-10-10T23:14:50.084429" elapsed="0.010996"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:50.096163" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:50.095583" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:50.097541" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:50.096724" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:50.096364" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:50.095542" elapsed="0.002217"/>
</if>
<kw name="Status 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-10-10T23:14:50.098084" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:50.099083" elapsed="0.000932"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:50.098774" elapsed="0.001327"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:50.101572" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:50.100594" elapsed="0.001123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:50.100296" elapsed="0.001565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:50.098539" elapsed="0.003463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:50.083545" elapsed="0.018696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:50.075528" elapsed="0.026914">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:52.105127" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:52.104325" elapsed="0.000897"/>
</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-10-10T23:14:52.106026" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:52.105498" elapsed="0.000648"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:52.105451" elapsed="0.000780"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:52.121804" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:52.122129" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:52.122361" 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-10-10T23:14:52.111734" elapsed="0.010680"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:52.123157" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:52.122570" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:52.124530" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:52.123722" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:52.123351" elapsed="0.001354"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:52.122531" elapsed="0.002218"/>
</if>
<kw name="Status 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-10-10T23:14:52.125072" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:52.126057" elapsed="0.000895"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:52.125750" elapsed="0.001306"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:52.128532" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:52.127534" elapsed="0.001143">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:52.127250" elapsed="0.001571">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:52.125518" elapsed="0.003423">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:52.110860" elapsed="0.018319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:52.103365" elapsed="0.026109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:54.132621" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:54.131800" elapsed="0.000887"/>
</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-10-10T23:14:54.133405" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:54.132856" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:54.132813" elapsed="0.000761"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:54.152874" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:54.153224" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:54.153454" 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-10-10T23:14:54.139135" elapsed="0.014373"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:54.154287" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:54.153666" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:54.155627" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:54.154821" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:54.154454" elapsed="0.001346"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:54.153627" elapsed="0.002217"/>
</if>
<kw name="Status 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-10-10T23:14:54.156163" elapsed="0.000338"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:54.157147" elapsed="0.000976"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:54.156838" elapsed="0.001393"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:54.159672" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:54.158710" elapsed="0.001107">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:54.158408" elapsed="0.001553">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:54.156607" elapsed="0.003499">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:54.138285" elapsed="0.022306">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:54.130916" elapsed="0.029883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:56.163450" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:56.162643" elapsed="0.000873"/>
</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-10-10T23:14:56.164184" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:56.163679" elapsed="0.000648"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:56.163636" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:56.179515" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:56.179810" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:56.180037" 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-10-10T23:14:56.169876" elapsed="0.010217"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:56.180902" elapsed="0.000094"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:56.180278" elapsed="0.000794"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:56.182430" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:56.181571" elapsed="0.000964"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:56.181129" elapsed="0.001472"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:56.180237" elapsed="0.002408"/>
</if>
<kw name="Status 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-10-10T23:14:56.182941" elapsed="0.000379"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:56.183953" elapsed="0.001426"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:56.183659" elapsed="0.001799"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:56.186872" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:56.185902" elapsed="0.001153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:56.185620" elapsed="0.001609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:56.183425" elapsed="0.004025">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:56.169029" elapsed="0.018629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:56.161717" elapsed="0.026130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:14:58.190552" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:14:58.189717" elapsed="0.000901"/>
</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-10-10T23:14:58.191330" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:58.190786" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:58.190743" elapsed="0.000754"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:14:58.209622" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:14:58.209905" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:14:58.210149" 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-10-10T23:14:58.197312" elapsed="0.012928"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:14:58.210942" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:14:58.210400" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:14:58.212334" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:14:58.211520" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:14:58.211130" elapsed="0.001379"/>
</branch>
<status status="PASS" start="2026-10-10T23:14:58.210359" elapsed="0.002195"/>
</if>
<kw name="Status 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-10-10T23:14:58.212849" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:14:58.213841" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:14:58.213555" elapsed="0.001303"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:14:58.216333" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:14:58.215359" elapsed="0.001122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:14:58.215044" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:14:58.213322" elapsed="0.003515">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:14:58.196432" elapsed="0.020632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:14:58.188792" elapsed="0.028501">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:00.219914" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:00.219087" 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-10-10T23:15:00.220710" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:00.220170" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:00.220127" elapsed="0.000751"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:00.237752" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:00.238071" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:00.238334" 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-10-10T23:15:00.226870" elapsed="0.011519"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:00.239120" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:00.238542" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:00.240530" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:00.239686" elapsed="0.000948"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:00.239317" elapsed="0.001384"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:00.238505" elapsed="0.002239"/>
</if>
<kw name="Status 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-10-10T23:15:00.241075" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:00.242105" elapsed="0.000927"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:00.241768" elapsed="0.001343"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:00.244909" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:00.243909" elapsed="0.001269">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:00.243615" elapsed="0.001763">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:00.241534" elapsed="0.003967">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:00.226016" elapsed="0.019688">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:00.218177" elapsed="0.027721">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:02.248749" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:02.247881" 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="NOT RUN" start="2026-10-10T23:15:02.249552" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:02.249011" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:02.248965" elapsed="0.000757"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:02.267391" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:02.267689" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:02.267903" 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-10-10T23:15:02.255287" elapsed="0.012700"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:02.268770" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:02.268145" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:02.270226" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:02.269421" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:02.268935" elapsed="0.001468"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:02.268105" elapsed="0.002341"/>
</if>
<kw name="Status 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-10-10T23:15:02.270737" elapsed="0.000424"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:02.271831" elapsed="0.000930"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:02.271544" elapsed="0.001295"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:02.274296" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:02.273333" elapsed="0.001115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:02.273021" elapsed="0.001584">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:02.271306" elapsed="0.003422">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:02.254409" elapsed="0.020527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:02.246902" elapsed="0.028249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:04.278483" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:04.277608" 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-10-10T23:15:04.279298" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:04.278738" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:04.278689" elapsed="0.000783"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:04.297558" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:04.297967" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:04.298293" 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-10-10T23:15:04.284915" elapsed="0.013452"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:04.299234" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:04.298538" elapsed="0.000815"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:04.300586" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:04.299766" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:04.299404" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:04.298497" elapsed="0.002301"/>
</if>
<kw name="Status 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-10-10T23:15:04.301118" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:04.302155" elapsed="0.000960"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:04.301826" elapsed="0.001395"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:04.304651" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:04.303672" elapsed="0.001136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:04.303390" elapsed="0.001585">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:04.301583" elapsed="0.003516">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:04.284070" elapsed="0.021263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:04.276635" elapsed="0.028888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:06.308282" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:06.307434" 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-10-10T23:15:06.309083" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:06.308526" elapsed="0.000703"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:06.308481" elapsed="0.000803"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:06.325577" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:06.325997" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:06.326232" 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-10-10T23:15:06.314884" elapsed="0.011404"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:06.327023" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:06.326444" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:06.328398" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:06.327587" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:06.327186" elapsed="0.001383"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:06.326404" elapsed="0.002208"/>
</if>
<kw name="Status 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-10-10T23:15:06.328913" elapsed="0.000414"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:06.329980" elapsed="0.003461"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:06.329673" elapsed="0.003850"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:06.334988" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:06.334004" elapsed="0.001134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:06.333688" elapsed="0.001637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:06.329436" elapsed="0.006011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:06.314042" elapsed="0.021606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:06.306489" elapsed="0.029349">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:08.338599" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:08.337761" 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="NOT RUN" start="2026-10-10T23:15:08.339507" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:08.338978" elapsed="0.000645"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:08.338900" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:08.355963" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:08.356303" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:08.356505" 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-10-10T23:15:08.345150" elapsed="0.011408"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:08.357322" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:08.356715" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:08.358639" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:08.357844" elapsed="0.000900"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:08.357486" elapsed="0.001327"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:08.356676" elapsed="0.002180"/>
</if>
<kw name="Status 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-10-10T23:15:08.359175" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:08.360173" elapsed="0.000925"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:08.359862" elapsed="0.001316"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:08.362633" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:08.361659" elapsed="0.001125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:08.361375" elapsed="0.001573">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:08.359627" elapsed="0.003448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:08.344307" elapsed="0.019000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:08.336777" elapsed="0.026791">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:10.366395" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:10.365551" elapsed="0.000914"/>
</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-10-10T23:15:10.367254" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:10.366642" elapsed="0.000738"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:10.366597" elapsed="0.000835"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:10.420568" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:10.420763" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:10.421009" 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-10-10T23:15:10.409335" elapsed="0.011732"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:10.421878" elapsed="0.000134"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:10.421283" elapsed="0.000797"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:10.423375" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:10.422526" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:10.422132" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:10.421235" elapsed="0.002361"/>
</if>
<kw name="Status 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-10-10T23:15:10.423895" elapsed="0.000391"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:10.424995" elapsed="0.000991"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:10.424641" elapsed="0.001424"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:10.427552" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:10.426545" elapsed="0.001153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:10.426258" elapsed="0.001583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:10.424401" elapsed="0.003588">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:10.408692" elapsed="0.019630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:10.364583" elapsed="0.063937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:12.431233" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:12.430420" 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="NOT RUN" start="2026-10-10T23:15:12.431998" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:12.431475" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:12.431431" elapsed="0.000733"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:12.448527" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:12.448824" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:12.449054" 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-10-10T23:15:12.437906" 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-10-10T23:15:12.449847" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:12.449300" elapsed="0.000683"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:12.451278" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:12.450478" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:12.450034" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:12.449259" elapsed="0.002240"/>
</if>
<kw name="Status 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-10-10T23:15:12.451794" elapsed="0.000458"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:12.452891" elapsed="0.001324"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:12.452605" elapsed="0.001694"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:12.455743" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:12.454748" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:12.454463" elapsed="0.001602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:12.452366" elapsed="0.003949">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:12.437051" elapsed="0.019475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:12.429507" elapsed="0.027211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:14.459328" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:14.458507" 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-10-10T23:15:14.460081" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:14.459568" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:14.459523" elapsed="0.000760"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:14.476351" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:14.476637" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:14.476836" 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-10-10T23:15:14.465834" elapsed="0.011057"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:14.477663" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:14.477077" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:14.479017" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:14.478236" elapsed="0.000889"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:14.477826" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:14.477034" elapsed="0.002238"/>
</if>
<kw name="Status 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-10-10T23:15:14.479573" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:14.480570" elapsed="0.000936"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:14.480280" elapsed="0.001307"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:14.483036" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:14.482056" elapsed="0.001130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:14.481747" elapsed="0.001706">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:14.480013" elapsed="0.003566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:14.464976" elapsed="0.018806">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:14.457594" elapsed="0.026402">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:16.486758" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:16.485884" elapsed="0.000948"/>
</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-10-10T23:15:16.487577" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:16.487038" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:16.486989" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:16.502844" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:16.503173" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:16.503440" 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-10-10T23:15:16.493809" elapsed="0.009685"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:16.504253" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:16.503650" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:16.505594" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:16.504782" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:16.504420" elapsed="0.001348"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:16.503611" elapsed="0.002201"/>
</if>
<kw name="Status 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-10-10T23:15:16.506137" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:16.507173" elapsed="0.000999"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:16.506859" elapsed="0.001427"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:16.509712" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:16.508734" elapsed="0.001246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:16.508450" elapsed="0.001680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:16.506619" elapsed="0.003665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:16.492950" elapsed="0.017542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:16.484893" elapsed="0.025788">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:18.513394" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:18.512533" 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-10-10T23:15:18.514182" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:18.513635" elapsed="0.000708"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:18.513591" elapsed="0.000804"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:18.530674" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:18.531008" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:18.531241" 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-10-10T23:15:18.520040" elapsed="0.011258"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:18.532037" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:18.531457" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:18.533414" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:18.532597" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:18.532231" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:18.531416" elapsed="0.002215"/>
</if>
<kw name="Status 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-10-10T23:15:18.534001" elapsed="0.000437"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:18.535105" elapsed="0.000986"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:18.534792" elapsed="0.001382"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:18.537687" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:18.536702" elapsed="0.001137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:18.536371" elapsed="0.001651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:18.534552" elapsed="0.003592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:18.519144" elapsed="0.019234">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:18.511582" elapsed="0.026989">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:20.541798" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:20.540986" elapsed="0.000879"/>
</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-10-10T23:15:20.542600" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:20.542071" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:20.542026" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:20.558717" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:20.559044" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:20.559299" 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-10-10T23:15:20.548488" elapsed="0.010868"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:20.560217" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:20.559512" elapsed="0.000825"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:20.561565" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:20.560749" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:20.560388" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:20.559473" elapsed="0.002309"/>
</if>
<kw name="Status 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-10-10T23:15:20.562229" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:20.563239" elapsed="0.000906"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:20.562914" elapsed="0.001341"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:20.565684" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:20.564705" elapsed="0.001129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:20.564421" elapsed="0.001621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:20.562655" elapsed="0.003513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:20.547542" elapsed="0.018863">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:20.540047" elapsed="0.026553">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:22.568945" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:22.568157" elapsed="0.000850"/>
</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-10-10T23:15:22.569674" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:22.569164" elapsed="0.000624"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:22.569125" elapsed="0.000712"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:22.585461" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:22.585812" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:22.586043" 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-10-10T23:15:22.575332" elapsed="0.010765"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:22.586834" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:22.586286" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:22.588269" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:22.587459" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:22.587061" elapsed="0.001385"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:22.586244" elapsed="0.002246"/>
</if>
<kw name="Status 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-10-10T23:15:22.588788" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:22.589797" elapsed="0.001440"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:22.589509" elapsed="0.001812"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:22.592779" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:22.591784" elapsed="0.001171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:22.591482" elapsed="0.001623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:22.589273" elapsed="0.003985">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:22.574449" elapsed="0.019015">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:22.567358" elapsed="0.026295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:24.596243" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:24.595424" elapsed="0.000886"/>
</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-10-10T23:15:24.597105" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:24.596574" elapsed="0.000681"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:24.596529" elapsed="0.000780"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:24.611948" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:24.612298" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:24.612504" 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-10-10T23:15:24.602786" 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-10-10T23:15:24.613334" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:24.612715" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:24.614682" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:24.613860" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:24.613499" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:24.612676" elapsed="0.002272"/>
</if>
<kw name="Status 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-10-10T23:15:24.615285" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:24.616298" elapsed="0.000973"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:24.615979" elapsed="0.001370"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:24.618756" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:24.617790" elapsed="0.001144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:24.617509" elapsed="0.001573">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:24.615715" elapsed="0.003517">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:24.601931" elapsed="0.017505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:24.594514" elapsed="0.025181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:26.622429" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:26.621589" 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-10-10T23:15:26.623182" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:26.622665" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:26.622623" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:26.640607" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:26.640926" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:26.641151" 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-10-10T23:15:26.629354" elapsed="0.011884"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:26.641969" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:26.641399" elapsed="0.000683"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:26.643377" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:26.642518" elapsed="0.000964"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:26.642132" elapsed="0.001423"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:26.641359" elapsed="0.002240"/>
</if>
<kw name="Status 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-10-10T23:15:26.643936" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:26.644948" elapsed="0.000914"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:26.644636" elapsed="0.001376"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:26.647464" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:26.646494" elapsed="0.001118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:26.646177" elapsed="0.001579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:26.644398" elapsed="0.003533">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:26.628467" elapsed="0.019875">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:26.620655" elapsed="0.027892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:28.651304" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:28.650403" 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="NOT RUN" start="2026-10-10T23:15:28.652236" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:28.651561" elapsed="0.000820"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:28.651516" elapsed="0.000928"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:28.668483" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:28.668770" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:28.668998" 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-10-10T23:15:28.659247" elapsed="0.009806"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:28.669797" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:28.669244" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:28.671220" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:28.670387" elapsed="0.000943"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:28.669996" elapsed="0.001403"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:28.669171" elapsed="0.002274"/>
</if>
<kw name="Status 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-10-10T23:15:28.671743" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:28.672750" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:28.672461" elapsed="0.001310"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:28.675252" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:28.674276" elapsed="0.001128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:28.673961" elapsed="0.001588">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:28.672220" elapsed="0.003540">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:28.658258" elapsed="0.017736">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:28.649453" elapsed="0.026762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-10T23:15:30.679580" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:30.678718" 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-10-10T23:15:30.680376" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:30.679820" elapsed="0.000695"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:30.679776" elapsed="0.000798"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:30.697440" level="INFO">GET Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:30.697753" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:30.698004" 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-10-10T23:15:30.686354" elapsed="0.011704"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:30.698892" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:30.698246" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:30.700333" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:30.699468" elapsed="0.000975"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:30.699057" elapsed="0.001456"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:30.698174" elapsed="0.002383"/>
</if>
<kw name="Status 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-10-10T23:15:30.700853" elapsed="0.000432"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:30.702024" elapsed="0.000941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:15:30.701681" elapsed="0.001365"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:30.704523" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:30.703539" elapsed="0.001137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-10T23:15:30.703237" elapsed="0.001734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:30.701408" elapsed="0.003693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:30.685444" elapsed="0.019893">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-10T23:15:30.677741" elapsed="0.027822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-10-10T23:15:30.705769" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:13:59.397299" elapsed="91.308830">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:30.706581" elapsed="0.000045"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:30.708484" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-10T23:15:31.017382" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:15:31.017710" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:15:31.017803" 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-10-10T23:15:31.017919" 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-10-10T23:15:30.708084" elapsed="0.309886"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:31.019174" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:31.018544" elapsed="0.000753"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:31.020070" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-10T23:15:31.359043" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:15:31.359376" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:15:31.359467" 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-10-10T23:15:31.359550" 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-10-10T23:15:31.019710" elapsed="0.339886"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:31.360513" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-10T23:15:31.439159" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:15:31.439447" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-10T23:15:31.439537" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:15:31.439619" 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-10-10T23:15:31.360100" elapsed="0.079565"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:31.440461" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-10T23:15:31.493006" 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-10-10T23:15:31.440244" elapsed="0.052899"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:31.509590" level="INFO">DELETE Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:31.509689" level="INFO">DELETE Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:31.509904" 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-10-10T23:15:31.493507" elapsed="0.016453"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:31.518549" level="INFO">DELETE Request : url=http://10.30.171.136: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=node0l96wxbyixijf1r1df0f3qkgq12.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:31.518830" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:15:31.519087" 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-10-10T23:15:31.510311" elapsed="0.008831"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-10T23:15:30.707281" elapsed="0.812038"/>
</kw>
<doc>CallHome SSH device registered with global credentials should result to successful mount.</doc>
<status status="FAIL" start="2026-10-10T23:13:58.703361" elapsed="92.816059">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8BOS55MdLIWtudTwqypAvwiEqXqjVJgtQ8Oyj3Bgj+rV5sUnPD38NSDYWSp0uEav0iN348AASRycfct4ze83YiqoEdRnS/cTZIYxkcSvJhjFeDLKhxvjst+dHLP45iuOHzjrPb58EjUi/xcv37s54WQNWEiabmdEOR+Uy/Qs79jBW7BwsOdXY5EEQL5lOlJLg1mvxI3GVbRgmAdK/i4VSlBlJwBiEpZgFrYb4n3zESHGBHDRQyV/UZzh3AvhhdgbsMKkHTCrPBVCueZrL+01rx1ANR0lLgYQTAqE//52LZYecxbfBb93X11sGLjD4fCovSqnkqghIQh65i2yuszX5"}}]}}}' 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-10-10T23:15:31.523013" level="INFO">Creating Session using : alias=session, url=http://10.30.171.136:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x78b330238b50&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-10T23:15:31.522053" elapsed="0.001295"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:31.523951" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-10T23:15:31.540663" 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-10-10T23:15:31.523729" elapsed="0.017054"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:31.541431" 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-10-10T23:15:31.906825" 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-10-10T23:15:31.541227" elapsed="0.365836"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:31.907846" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-10T23:15:31.953401" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:15:31.953687" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4...</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-10-10T23:15:31.907585" elapsed="0.046157"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:15:31.957501" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:15:31.954254" elapsed="0.003346"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-10-10T23:15:31.521370" elapsed="0.436358"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:15:31.999024" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:15:31.958768" elapsed="0.040473"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:15:32.008920" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:15:31.999801" elapsed="0.009248"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-10T23:15:31.958096" elapsed="0.051088"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-10T23:15:32.010652" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_global_credentials.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_global_credentials.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:15:32.010950" 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-10-10T23:15:32.010378" elapsed="0.000627"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:15:32.011795" 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-10-10T23:15:32.011372" elapsed="0.000477"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:15:32.012617" 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-10-10T23:15:32.012220" elapsed="0.000449"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:32.030016" level="INFO">PUT Request : url=http://10.30.171.136: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-10-10T23:15:32.030123" level="INFO">PUT Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=204, reason=No Content 
 headers={'Set-Cookie': 'JSESSIONID=node017i4d6r7o52sn1sqi5himvh1c73.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 09-Oct-2026 23:15:32 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:32.030367" 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-10-10T23:15:32.012990" elapsed="0.017431"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:32.030795" elapsed="0.000874"/>
</kw>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-10-10T23:15:32.009607" elapsed="0.022189"/>
</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-10-10T23:15:32.034609" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:15:32.034897" 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-10-10T23:15:32.034351" elapsed="0.000601"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:15:32.035984" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:15:32.035328" elapsed="0.000743"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:32.033722" elapsed="0.002455"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:32.033110" elapsed="0.003144"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-10T23:15:32.036594" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:32.036310" elapsed="0.000380"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:32.033066" elapsed="0.003665"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:15:32.037495" 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-10-10T23:15:32.037046" elapsed="0.000504"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:15:32.038317" 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-10-10T23:15:32.037894" elapsed="0.000476"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:15:32.039114" 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-10-10T23:15:32.038707" elapsed="0.000462"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:15:32.040023" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHB...</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-10-10T23:15:32.039605" elapsed="0.000472"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:32.056961" level="INFO">POST Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"
        }
    }
}
 
 </msg>
<msg time="2026-10-10T23:15:32.057377" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:32.057748" 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-10-10T23:15:32.040397" elapsed="0.017411"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:15:32.058376" elapsed="0.001030"/>
</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-10-10T23:15:32.032352" elapsed="0.027194"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:15:32.060382" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-10T23:15:32.368713" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:15:32.368987" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:15:32.369079" 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-10-10T23:15:32.369160" 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-10-10T23:15:32.059989" elapsed="0.309258"/>
</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-10-10T23:15:32.373053" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:32.372337" elapsed="0.000774"/>
</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-10-10T23:15:32.373791" elapsed="0.000379"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:32.373305" elapsed="0.000974"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:32.373255" elapsed="0.001083"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:32.388676" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:32.389009" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:32.389261" 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-10-10T23:15:32.379841" elapsed="0.009476"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:32.390047" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:32.389474" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:32.391417" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:32.390608" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:32.390242" elapsed="0.001435"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:32.389434" elapsed="0.002294"/>
</if>
<kw name="Status 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-10-10T23:15:32.392060" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:32.394135" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:32.393087" elapsed="0.001260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:32.392775" elapsed="0.001723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:32.392531" elapsed="0.002092">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:32.378998" elapsed="0.015829">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:32.371541" elapsed="0.023506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:34.397755" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:34.396925" 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-10-10T23:15:34.398566" elapsed="0.000443"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:34.398020" elapsed="0.001067"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:34.397976" elapsed="0.001166"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:34.414984" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:34.415322" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:34.415539" 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-10-10T23:15:34.404930" elapsed="0.010670"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:34.416414" elapsed="0.000127"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:34.415776" elapsed="0.000834"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:34.417925" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:34.417065" elapsed="0.000966"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:34.416661" elapsed="0.001439"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:34.415732" elapsed="0.002413"/>
</if>
<kw name="Status 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-10-10T23:15:34.418485" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:34.421178" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:34.419637" elapsed="0.001732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:34.419319" elapsed="0.002200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:34.419045" elapsed="0.002595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:34.403993" elapsed="0.017851">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:34.395909" elapsed="0.026149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:36.424311" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:36.423535" elapsed="0.000840"/>
</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-10-10T23:15:36.425023" elapsed="0.000384"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:36.424529" elapsed="0.000955"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:36.424489" elapsed="0.001045"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:36.440098" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:36.440404" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:36.440675" 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-10-10T23:15:36.431034" elapsed="0.009694"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:36.441572" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:36.440909" elapsed="0.000778"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:36.442923" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:36.442121" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:36.441737" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:36.440847" elapsed="0.002291"/>
</if>
<kw name="Status 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-10-10T23:15:36.443466" elapsed="0.000305"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:36.445482" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:36.444449" elapsed="0.001175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:36.444135" elapsed="0.001632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:36.443901" elapsed="0.002009">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:36.430186" elapsed="0.015924">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:36.422723" elapsed="0.023610">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:38.448733" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:38.447941" elapsed="0.000854"/>
</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-10-10T23:15:38.449504" elapsed="0.000382"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:38.448990" elapsed="0.000975"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:38.448947" elapsed="0.001070"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:38.465721" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:38.466106" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:38.466360" 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-10-10T23:15:38.455895" elapsed="0.010519"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:38.467137" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:38.466573" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:38.468501" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:38.467694" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:38.467334" elapsed="0.001341"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:38.466532" elapsed="0.002187"/>
</if>
<kw name="Status 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-10-10T23:15:38.469052" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:38.471086" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:38.470086" elapsed="0.001181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:38.469735" elapsed="0.001679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:38.469498" elapsed="0.002038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:38.455017" elapsed="0.016720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:38.447079" elapsed="0.024871">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:40.474702" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:40.473758" 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-10-10T23:15:40.475523" elapsed="0.000504"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:40.474974" elapsed="0.001140"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:40.474928" elapsed="0.001243"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:40.502299" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:40.502600" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:40.502821" 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-10-10T23:15:40.482125" elapsed="0.020779"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:40.503714" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:40.503078" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:40.505343" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:40.504349" elapsed="0.001107"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:40.503920" elapsed="0.001610"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:40.503034" elapsed="0.002543"/>
</if>
<kw name="Status 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-10-10T23:15:40.505922" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:40.508071" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:40.506989" elapsed="0.001271">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:40.506652" elapsed="0.001766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:40.506402" elapsed="0.002147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:40.481220" elapsed="0.027545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:40.472796" elapsed="0.036197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:42.512352" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:42.510968" elapsed="0.001453"/>
</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-10-10T23:15:42.513116" elapsed="0.000395"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:42.512594" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:42.512550" elapsed="0.001094"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:42.528270" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:42.528553" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:42.528772" 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-10-10T23:15:42.519280" elapsed="0.009548"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:42.529599" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:42.529012" elapsed="0.000705"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:42.530966" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:42.530153" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:42.529768" elapsed="0.001374"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:42.528971" elapsed="0.002216"/>
</if>
<kw name="Status 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-10-10T23:15:42.531522" elapsed="0.000307"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:42.533582" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:42.532514" elapsed="0.001216">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:42.532221" elapsed="0.001680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:42.531958" elapsed="0.002069">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:42.518410" elapsed="0.015849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:42.509991" elapsed="0.024552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:44.537265" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:44.536437" 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-10-10T23:15:44.538024" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:44.537503" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:44.537461" elapsed="0.001085"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:44.557623" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:44.557937" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:44.558137" 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-10-10T23:15:44.544061" elapsed="0.014159"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:44.558951" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:44.558381" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:44.560435" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:44.559508" elapsed="0.001038"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:44.559118" elapsed="0.001498"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:44.558341" elapsed="0.002319"/>
</if>
<kw name="Status 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-10-10T23:15:44.560991" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:44.563001" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:44.561993" elapsed="0.001158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:44.561681" elapsed="0.001650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:44.561446" elapsed="0.002009">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:44.543167" elapsed="0.020574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:44.535520" elapsed="0.028440">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:46.569290" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:46.568474" elapsed="0.000884"/>
</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-10-10T23:15:46.570037" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:46.569526" elapsed="0.000988"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:46.569484" elapsed="0.001082"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:46.586973" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:46.587295" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:46.587517" 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-10-10T23:15:46.576047" elapsed="0.011525"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:46.588336" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:46.587730" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:46.589710" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:46.588925" elapsed="0.000888"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:46.588502" elapsed="0.001404"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:46.587690" elapsed="0.002261"/>
</if>
<kw name="Status 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-10-10T23:15:46.590279" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:46.592275" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:46.591276" elapsed="0.001149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:46.590951" elapsed="0.001618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:46.590697" elapsed="0.002076">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:46.575185" elapsed="0.017822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:46.567602" elapsed="0.025631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:48.595591" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:48.594795" elapsed="0.000857"/>
</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-10-10T23:15:48.596349" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:48.595812" elapsed="0.000977"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:48.595771" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:48.617236" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:48.617510" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:48.617709" 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-10-10T23:15:48.602434" elapsed="0.015328"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:48.618551" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:48.617948" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:48.619901" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:48.619096" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:48.618715" elapsed="0.001360"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:48.617907" elapsed="0.002211"/>
</if>
<kw name="Status 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-10-10T23:15:48.620451" elapsed="0.000305"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:48.622909" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:48.621448" elapsed="0.001610">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:48.621131" elapsed="0.002180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:48.620895" elapsed="0.002547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:48.601564" elapsed="0.022077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:48.593977" elapsed="0.029853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:50.626254" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:50.625456" elapsed="0.000864"/>
</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-10-10T23:15:50.626981" elapsed="0.000382"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:50.626478" elapsed="0.000963"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:50.626438" elapsed="0.001055"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:50.642638" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:50.642934" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:50.643135" 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-10-10T23:15:50.633017" elapsed="0.010199"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:50.643942" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:50.643376" elapsed="0.000678"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:50.645298" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:50.644495" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:50.644105" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:50.643337" elapsed="0.002177"/>
</if>
<kw name="Status 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-10-10T23:15:50.645813" elapsed="0.000326"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:50.647777" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:50.646793" elapsed="0.001232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:50.646508" elapsed="0.001665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:50.646276" elapsed="0.002058">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:50.632133" elapsed="0.016400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:50.624636" elapsed="0.024090">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:52.651451" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:52.650617" 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-10-10T23:15:52.652241" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:52.651692" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:52.651649" elapsed="0.001087"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:52.667973" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:52.668299" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:52.668521" 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-10-10T23:15:52.658721" elapsed="0.009855"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:52.669343" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:52.668733" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:52.670676" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:52.669893" elapsed="0.000886"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:52.669508" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:52.668694" elapsed="0.002223"/>
</if>
<kw name="Status 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-10-10T23:15:52.671347" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:52.673441" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:52.672370" elapsed="0.001222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:52.672037" elapsed="0.001698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:52.671770" elapsed="0.002114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:52.657847" elapsed="0.016244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:52.649685" elapsed="0.024633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:54.677096" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:54.676283" elapsed="0.000882"/>
</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-10-10T23:15:54.677927" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:54.677373" elapsed="0.001028"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:54.677325" elapsed="0.001132"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:54.693628" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:54.693952" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:54.694154" 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-10-10T23:15:54.684179" elapsed="0.010068"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:54.694985" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:54.694408" elapsed="0.000691"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:54.696452" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:54.695638" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:54.695265" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:54.694367" elapsed="0.002300"/>
</if>
<kw name="Status 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-10-10T23:15:54.696996" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:54.699013" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:54.698007" elapsed="0.001155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:54.697690" elapsed="0.001651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:54.697454" elapsed="0.002011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:54.683317" elapsed="0.016349">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:54.675310" elapsed="0.024572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:56.703491" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:56.701996" elapsed="0.001568"/>
</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-10-10T23:15:56.704343" elapsed="0.000390"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:56.703751" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:56.703704" elapsed="0.001192"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:56.722139" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:56.722482" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:56.722796" 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-10-10T23:15:56.710991" elapsed="0.011887"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:56.723623" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:56.723037" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:56.725050" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:56.724176" elapsed="0.000979"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:56.723789" elapsed="0.001467"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:56.722997" elapsed="0.002305"/>
</if>
<kw name="Status 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-10-10T23:15:56.725602" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:56.727644" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:56.726625" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:56.726334" elapsed="0.001636">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:56.726061" elapsed="0.002035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:56.710045" elapsed="0.018536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:56.700983" elapsed="0.027869">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:58.731544" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:15:58.730720" elapsed="0.000891"/>
</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-10-10T23:15:58.732334" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:58.731780" elapsed="0.000993"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:58.731737" elapsed="0.001114"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:15:58.747551" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:15:58.747991" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:15:58.748229" 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-10-10T23:15:58.738499" elapsed="0.009788"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:15:58.749029" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:15:58.748446" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:15:58.750408" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:15:58.749597" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:15:58.749227" elapsed="0.001356"/>
</branch>
<status status="PASS" start="2026-10-10T23:15:58.748406" elapsed="0.002222"/>
</if>
<kw name="Status 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-10-10T23:15:58.750970" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:15:58.753035" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:15:58.751977" elapsed="0.001238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:15:58.751665" elapsed="0.001701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:15:58.751426" elapsed="0.002065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:58.737605" elapsed="0.016087">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:58.729763" elapsed="0.024143">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:00.757257" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:00.756435" elapsed="0.000892"/>
</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-10-10T23:16:00.758020" elapsed="0.000500"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:00.757498" elapsed="0.001104"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:00.757455" elapsed="0.001201"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:00.773734" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:00.774049" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:00.774306" 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-10-10T23:16:00.764236" elapsed="0.010128"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:00.775102" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:00.774525" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:00.776486" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:00.775669" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:00.775305" elapsed="0.001354"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:00.774484" elapsed="0.002219"/>
</if>
<kw name="Status 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-10-10T23:16:00.777031" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:00.779094" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:00.778094" elapsed="0.001182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:00.777717" elapsed="0.001706">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:00.777481" elapsed="0.002065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:00.763327" elapsed="0.016419">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:00.755530" elapsed="0.024437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:02.782798" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:02.781955" 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-10-10T23:16:02.783601" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:02.783066" elapsed="0.001025"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:02.783022" elapsed="0.001122"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:02.798604" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:02.798929" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:02.799128" 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-10-10T23:16:02.789675" 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-10-10T23:16:02.799938" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:02.799372" elapsed="0.000680"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:02.801290" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:02.800490" elapsed="0.000904"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:02.800101" elapsed="0.001361"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:02.799332" elapsed="0.002174"/>
</if>
<kw name="Status 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-10-10T23:16:02.801803" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:02.804372" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:02.802800" elapsed="0.001726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:02.802513" elapsed="0.002159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:02.802273" elapsed="0.002523">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:02.788804" elapsed="0.016222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:02.780951" elapsed="0.024393">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:04.808083" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:04.807273" elapsed="0.000879"/>
</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-10-10T23:16:04.808895" elapsed="0.000397"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:04.808370" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:04.808323" elapsed="0.001104"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:04.824089" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:04.824450" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:04.824663" 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-10-10T23:16:04.815017" elapsed="0.009701"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:04.825538" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:04.824905" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:04.826944" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:04.826128" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:04.825710" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:04.824864" elapsed="0.002304"/>
</if>
<kw name="Status 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-10-10T23:16:04.827506" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:04.829510" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:04.828510" elapsed="0.001148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:04.828186" elapsed="0.001617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:04.827948" elapsed="0.002004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:04.814114" elapsed="0.016167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:04.806289" elapsed="0.024193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:06.833315" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:06.832460" 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-10-10T23:16:06.834095" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:06.833566" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:06.833521" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:06.849146" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:06.849474" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:06.849699" 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-10-10T23:16:06.840579" elapsed="0.009176"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:06.850540" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:06.849953" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:06.851908" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:06.851094" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:06.850708" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:06.849912" elapsed="0.002221"/>
</if>
<kw name="Status 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-10-10T23:16:06.852470" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:06.854527" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:06.853524" elapsed="0.001149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:06.853229" elapsed="0.001671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:06.852960" elapsed="0.002150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:06.839693" elapsed="0.015658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:06.831482" elapsed="0.024066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:08.859030" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:08.858149" 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-10-10T23:16:08.859801" elapsed="0.000382"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:08.859307" elapsed="0.000985"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:08.859260" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:08.874567" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:08.874878" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:08.875078" 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-10-10T23:16:08.865869" elapsed="0.009263"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:08.875890" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:08.875324" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:08.877251" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:08.876448" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:08.876054" elapsed="0.001375"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:08.875284" elapsed="0.002189"/>
</if>
<kw name="Status 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-10-10T23:16:08.877774" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:08.879756" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:08.878765" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:08.878476" elapsed="0.001688">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:08.878241" elapsed="0.002083">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:08.864976" elapsed="0.015550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:08.856744" elapsed="0.023978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:10.883916" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:10.882577" elapsed="0.001407"/>
</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-10-10T23:16:10.884687" elapsed="0.000384"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:10.884154" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:10.884111" elapsed="0.001122"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:10.900623" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:10.900935" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:10.901156" 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-10-10T23:16:10.890766" elapsed="0.010474"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:10.901964" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:10.901399" elapsed="0.000678"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:10.903322" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:10.902522" elapsed="0.000905"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:10.902129" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:10.901359" elapsed="0.002189"/>
</if>
<kw name="Status 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-10-10T23:16:10.903900" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:10.905924" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:10.904937" elapsed="0.001221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:10.904627" elapsed="0.001714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:10.904386" elapsed="0.002078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:10.889852" elapsed="0.016813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:10.881655" elapsed="0.025221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:12.910533" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:12.909334" elapsed="0.001295"/>
</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-10-10T23:16:12.911634" elapsed="0.000549"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:12.910892" elapsed="0.001441"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:12.910830" elapsed="0.001581"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:12.932309" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:12.932604" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:12.932834" 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-10-10T23:16:12.920716" elapsed="0.012175"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:12.933650" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:12.933055" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:12.935036" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:12.934231" elapsed="0.001014"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:12.933840" elapsed="0.001480"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:12.933013" elapsed="0.002354"/>
</if>
<kw name="Status 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-10-10T23:16:12.935770" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:12.937898" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:12.936794" elapsed="0.001255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:12.936501" elapsed="0.001727">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:12.936262" elapsed="0.002095">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:12.919429" elapsed="0.019130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:12.907994" elapsed="0.030757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:14.941992" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:14.941169" elapsed="0.000891"/>
</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-10-10T23:16:14.942760" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:14.942264" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:14.942217" elapsed="0.001091"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:14.958503" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:14.958787" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:14.959038" 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-10-10T23:16:14.948822" elapsed="0.010270"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:14.959851" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:14.959284" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:14.961407" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:14.960532" elapsed="0.000980"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:14.960098" elapsed="0.001484"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:14.959243" elapsed="0.002384"/>
</if>
<kw name="Status 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-10-10T23:16:14.961968" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:14.963992" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:14.962981" elapsed="0.001161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:14.962660" elapsed="0.001664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:14.962426" elapsed="0.002026">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:14.947942" elapsed="0.016710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:14.940295" elapsed="0.024574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:16.967509" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:16.966683" 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-10-10T23:16:16.968294" elapsed="0.000360"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:16.967747" elapsed="0.000985"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:16.967703" elapsed="0.001082"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:16.984299" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:16.984624" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:16.984963" 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-10-10T23:16:16.974309" elapsed="0.010710"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:16.985923" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:16.985178" elapsed="0.000863"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:16.987295" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:16.986485" elapsed="0.000941"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:16.986090" elapsed="0.001405"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:16.985139" elapsed="0.002400"/>
</if>
<kw name="Status 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-10-10T23:16:16.987868" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:16.990439" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:16.988891" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:16.988577" elapsed="0.002167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:16.988338" elapsed="0.002558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:16.973424" elapsed="0.017674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:16.965762" elapsed="0.025558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:18.993937" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:18.993110" 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="PASS" start="2026-10-10T23:16:18.994711" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:18.994176" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:18.994131" elapsed="0.001134"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:19.020325" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:19.020704" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:19.020933" 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-10-10T23:16:19.000909" elapsed="0.020080"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:19.021730" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:19.021147" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:19.023114" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:19.022333" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:19.021918" elapsed="0.001407"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:19.021106" elapsed="0.002263"/>
</if>
<kw name="Status 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-10-10T23:16:19.023683" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:19.025683" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:19.024686" elapsed="0.001168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:19.024395" elapsed="0.001606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:19.024127" elapsed="0.001999">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:19.000010" elapsed="0.026349">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:18.992183" elapsed="0.034369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:21.029356" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:21.028509" elapsed="0.000916"/>
</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-10-10T23:16:21.030150" elapsed="0.000503"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:21.029596" elapsed="0.001137"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:21.029552" elapsed="0.001235"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:21.046778" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:21.047099" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:21.047354" 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-10-10T23:16:21.037341" elapsed="0.010069"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:21.048143" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:21.047570" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:21.049521" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:21.048706" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:21.048343" elapsed="0.001353"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:21.047530" elapsed="0.002209"/>
</if>
<kw name="Status 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-10-10T23:16:21.050064" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:21.052171" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:21.051137" elapsed="0.001219">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:21.050751" elapsed="0.001751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:21.050516" elapsed="0.002108">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:21.036458" elapsed="0.016389">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:21.027517" elapsed="0.025527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:23.055896" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:23.054999" 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-10-10T23:16:23.056673" elapsed="0.000442"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:23.056138" elapsed="0.001120"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:23.056093" elapsed="0.001225"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:23.072563" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:23.072879" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:23.073079" 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-10-10T23:16:23.062873" elapsed="0.010261"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:23.073919" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:23.073333" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:23.075284" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:23.074477" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:23.074084" elapsed="0.001375"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:23.073293" elapsed="0.002210"/>
</if>
<kw name="Status 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-10-10T23:16:23.075825" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:23.077876" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:23.076876" elapsed="0.001150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:23.076504" elapsed="0.001665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:23.076270" elapsed="0.002066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:23.061999" elapsed="0.016543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:23.054036" elapsed="0.024808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:25.082086" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:25.080701" elapsed="0.001454"/>
</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-10-10T23:16:25.082878" elapsed="0.000397"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:25.082357" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:25.082313" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:25.097846" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:25.098143" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:25.098414" 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-10-10T23:16:25.088912" elapsed="0.009557"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:25.099231" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:25.098624" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:25.100554" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:25.099753" elapsed="0.000904"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:25.099397" elapsed="0.001328"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:25.098584" elapsed="0.002184"/>
</if>
<kw name="Status 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-10-10T23:16:25.101093" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:25.103126" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:25.102074" elapsed="0.001233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:25.101764" elapsed="0.001687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:25.101536" elapsed="0.002038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:25.088043" elapsed="0.015842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:25.079815" elapsed="0.024268">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:27.106807" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:27.105950" 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-10-10T23:16:27.107577" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:27.107047" elapsed="0.001000"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:27.107002" elapsed="0.001099"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:27.122867" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:27.123161" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:27.123404" 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-10-10T23:16:27.113634" 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-10-10T23:16:27.124228" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:27.123624" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:27.125580" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:27.124764" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:27.124402" elapsed="0.001352"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:27.123580" elapsed="0.002247"/>
</if>
<kw name="Status 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-10-10T23:16:27.126133" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:27.128139" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:27.127130" elapsed="0.001193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:27.126841" elapsed="0.001627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:27.126587" elapsed="0.002098">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:27.112727" elapsed="0.016202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:27.104976" elapsed="0.024156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:29.134827" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:29.133997" elapsed="0.000899"/>
</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-10-10T23:16:29.135602" elapsed="0.000387"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:29.135066" elapsed="0.001002"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:29.135022" elapsed="0.001100"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:29.152162" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:29.152495" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:29.152718" 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-10-10T23:16:29.141808" elapsed="0.010965"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:29.153542" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:29.152958" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:29.154933" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:29.154111" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:29.153707" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:29.152918" elapsed="0.002233"/>
</if>
<kw name="Status 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-10-10T23:16:29.155485" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:29.157519" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:29.156480" elapsed="0.001187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:29.156160" elapsed="0.001762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:29.155925" elapsed="0.002126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:29.140904" elapsed="0.017378">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:29.133089" elapsed="0.025388">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:31.161169" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:31.160369" elapsed="0.000900"/>
</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-10-10T23:16:31.161958" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:31.161443" elapsed="0.000988"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:31.161398" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:31.177838" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:31.178144" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:31.178378" 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-10-10T23:16:31.167971" elapsed="0.010462"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:31.179162" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:31.178587" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:31.180557" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:31.179754" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:31.179386" elapsed="0.001342"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:31.178548" elapsed="0.002223"/>
</if>
<kw name="Status 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-10-10T23:16:31.181094" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:31.183586" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:31.182093" elapsed="0.001748">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:31.181804" elapsed="0.002187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:31.181548" elapsed="0.002565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:31.167101" elapsed="0.017244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:31.159421" elapsed="0.025113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:33.187134" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:33.186334" elapsed="0.000898"/>
</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-10-10T23:16:33.187923" elapsed="0.000397"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:33.187407" elapsed="0.000992"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:33.187362" elapsed="0.001089"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:33.204034" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:33.204374" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:33.204574" 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-10-10T23:16:33.193967" elapsed="0.010661"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:33.205423" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:33.204840" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:33.206763" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:33.205970" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:33.205586" elapsed="0.001375"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:33.204777" elapsed="0.002227"/>
</if>
<kw name="Status 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-10-10T23:16:33.207436" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:33.209503" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:33.208501" elapsed="0.001153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:33.208181" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:33.207942" elapsed="0.002006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:33.193101" elapsed="0.017051">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:33.185421" elapsed="0.024957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:35.213019" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:35.212177" elapsed="0.000910"/>
</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-10-10T23:16:35.213817" elapsed="0.000400"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:35.213296" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:35.213250" elapsed="0.001103"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:35.230772" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:35.231094" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:35.231348" 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-10-10T23:16:35.220359" elapsed="0.011044"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:35.232134" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:35.231563" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:35.233635" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:35.232808" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:35.232415" elapsed="0.001447"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:35.231523" elapsed="0.002385"/>
</if>
<kw name="Status 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-10-10T23:16:35.234280" elapsed="0.000319"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:35.236295" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:35.235291" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:35.234969" elapsed="0.001626">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:35.234709" elapsed="0.002011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:35.219476" elapsed="0.017469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:35.211286" elapsed="0.025859">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:37.239920" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:37.239088" elapsed="0.000901"/>
</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-10-10T23:16:37.240716" elapsed="0.000388"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:37.240162" elapsed="0.001100"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:37.240117" elapsed="0.001199"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:37.256774" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:37.257091" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:37.257420" 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-10-10T23:16:37.246907" 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-10-10T23:16:37.258247" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:37.257636" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:37.259637" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:37.258810" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:37.258416" elapsed="0.001494"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:37.257597" elapsed="0.002358"/>
</if>
<kw name="Status 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-10-10T23:16:37.260293" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:37.262363" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:37.261363" elapsed="0.001150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:37.261043" elapsed="0.001616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:37.260723" elapsed="0.002080">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:37.246014" elapsed="0.016997">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:37.238128" elapsed="0.025104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:39.266542" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:39.265134" elapsed="0.001477"/>
</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-10-10T23:16:39.267338" elapsed="0.000372"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:39.266805" elapsed="0.001016"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:39.266741" elapsed="0.001135"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:39.282618" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:39.283027" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:39.283282" 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-10-10T23:16:39.273440" elapsed="0.009899"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:39.284076" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:39.283497" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:39.285458" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:39.284636" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:39.284274" elapsed="0.001360"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:39.283458" elapsed="0.002220"/>
</if>
<kw name="Status 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-10-10T23:16:39.286000" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:39.288079" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:39.287058" elapsed="0.001201">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:39.286689" elapsed="0.001720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:39.286451" elapsed="0.002083">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:39.272560" elapsed="0.016177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:39.264162" elapsed="0.024797">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:41.291394" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:41.290561" elapsed="0.000898"/>
</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-10-10T23:16:41.292135" elapsed="0.000489"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:41.291627" elapsed="0.001078"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:41.291584" elapsed="0.001175"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:41.309027" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:41.309347" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:41.309547" 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-10-10T23:16:41.298342" elapsed="0.011260"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:41.310365" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:41.309760" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:41.311699" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:41.310912" elapsed="0.000970"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:41.310530" elapsed="0.001423"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:41.309720" elapsed="0.002276"/>
</if>
<kw name="Status 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-10-10T23:16:41.312327" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:41.314320" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:41.313320" elapsed="0.001147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:41.313002" elapsed="0.001611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:41.312742" elapsed="0.001995">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:41.297468" elapsed="0.017493">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:41.289702" elapsed="0.025451">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:43.318277" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:43.317444" elapsed="0.000897"/>
</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-10-10T23:16:43.319009" elapsed="0.000395"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:43.318504" elapsed="0.000990"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:43.318463" elapsed="0.001091"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:43.336126" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:43.336461" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:43.336710" 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-10-10T23:16:43.325279" elapsed="0.011486"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:43.337533" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:43.336952" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:43.338937" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:43.338086" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:43.337699" elapsed="0.001412"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:43.336913" elapsed="0.002242"/>
</if>
<kw name="Status 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-10-10T23:16:43.339485" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:43.341478" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:43.340477" elapsed="0.001148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:43.340160" elapsed="0.001607">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:43.339926" elapsed="0.001989">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:43.324394" elapsed="0.017721">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:43.316584" elapsed="0.025848">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:45.344774" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:45.344011" elapsed="0.000845"/>
</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-10-10T23:16:45.345522" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:45.345016" elapsed="0.000966"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:45.344976" elapsed="0.001057"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:45.362082" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:45.362412" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:45.362611" 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-10-10T23:16:45.351629" elapsed="0.011036"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:45.363423" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:45.362847" elapsed="0.000690"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:45.364797" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:45.363967" elapsed="0.000937"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:45.363586" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:45.362805" elapsed="0.002212"/>
</if>
<kw name="Status 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-10-10T23:16:45.365390" elapsed="0.000320"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:45.367988" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:45.366408" elapsed="0.001726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:45.366088" elapsed="0.002231">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:45.365852" elapsed="0.002597">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:45.350767" elapsed="0.017990">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:45.343186" elapsed="0.025814">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:47.371599" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:47.370703" elapsed="0.000965"/>
</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-10-10T23:16:47.372385" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:47.371859" elapsed="0.000992"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:47.371814" elapsed="0.001092"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:47.388859" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:47.389132" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:47.389379" 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-10-10T23:16:47.378519" elapsed="0.010917"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:47.390168" elapsed="0.000083"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:47.389593" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:47.391541" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:47.390733" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:47.390367" elapsed="0.001348"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:47.389553" elapsed="0.002207"/>
</if>
<kw name="Status 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-10-10T23:16:47.392094" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:47.394149" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:47.393157" elapsed="0.001171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:47.392865" elapsed="0.001608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:47.392550" elapsed="0.002136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:47.377649" elapsed="0.017295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:47.369824" elapsed="0.025317">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:49.397659" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:49.396830" elapsed="0.000904"/>
</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-10-10T23:16:49.398489" elapsed="0.000421"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:49.397950" elapsed="0.001040"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:49.397902" elapsed="0.001139"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:49.416020" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:49.416348" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:49.416579" 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-10-10T23:16:49.405009" elapsed="0.011632"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:49.417469" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:49.416853" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:49.419048" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:49.418114" elapsed="0.001045"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:49.417651" elapsed="0.001611"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:49.416803" 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-10-10T23:16:49.419631" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:49.421667" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:49.420664" elapsed="0.001173">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:49.420376" elapsed="0.001697">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:49.420109" elapsed="0.002127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:49.404125" elapsed="0.018320">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:49.395938" elapsed="0.026699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:51.425050" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:51.424267" elapsed="0.000846"/>
</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-10-10T23:16:51.425791" elapsed="0.000355"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:51.425303" elapsed="0.000950"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:51.425261" elapsed="0.001044"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:51.442174" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:51.442481" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:51.442696" 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-10-10T23:16:51.431917" elapsed="0.010839"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:51.443533" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:51.442965" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:51.444984" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:51.444135" elapsed="0.000969"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:51.443695" elapsed="0.001536"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:51.442925" elapsed="0.002352"/>
</if>
<kw name="Status 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-10-10T23:16:51.445578" elapsed="0.000404"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:51.447630" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:51.446639" elapsed="0.001228">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:51.446350" elapsed="0.001665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:51.446088" elapsed="0.002049">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:51.431048" elapsed="0.017323">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:51.423389" elapsed="0.025178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:53.451626" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:53.450334" elapsed="0.001355"/>
</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-10-10T23:16:53.452388" elapsed="0.000358"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:53.451874" elapsed="0.000974"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:53.451832" elapsed="0.001071"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:53.468676" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:53.468979" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:53.469235" 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-10-10T23:16:53.458533" elapsed="0.010761"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:53.470020" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:53.469454" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:53.471497" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:53.470580" elapsed="0.001022"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:53.470184" elapsed="0.001490"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:53.469413" elapsed="0.002311"/>
</if>
<kw name="Status 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-10-10T23:16:53.472234" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:53.474362" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:53.473322" elapsed="0.001188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:53.472967" elapsed="0.001686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:53.472661" elapsed="0.002136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:53.457632" elapsed="0.017367">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:53.449434" elapsed="0.025785">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:55.478099" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:55.477226" elapsed="0.000948"/>
</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-10-10T23:16:55.478925" elapsed="0.000407"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:55.478390" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:55.478341" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:55.497504" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:55.497838" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:55.498038" 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-10-10T23:16:55.485015" elapsed="0.013076"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:55.498851" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:55.498278" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:55.500319" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:55.499505" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:55.499104" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:55.498237" elapsed="0.002301"/>
</if>
<kw name="Status 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-10-10T23:16:55.500863" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:55.502908" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:55.501881" elapsed="0.001181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:55.501571" elapsed="0.001670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:55.501327" elapsed="0.002043">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:55.484154" elapsed="0.019420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:55.476163" elapsed="0.027599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:57.507041" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:57.506231" elapsed="0.000877"/>
</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-10-10T23:16:57.507831" elapsed="0.000402"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:57.507318" elapsed="0.000996"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:57.507272" elapsed="0.001099"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:57.526496" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:57.526810" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:57.527159" 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-10-10T23:16:57.514025" elapsed="0.013235"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:57.528101" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:57.527430" elapsed="0.000817"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:57.529551" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:57.528659" elapsed="0.000996"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:57.528300" elapsed="0.001422"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:57.527390" elapsed="0.002376"/>
</if>
<kw name="Status 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-10-10T23:16:57.530138" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:57.532143" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:57.531141" elapsed="0.001188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:57.530851" elapsed="0.001625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:57.530590" elapsed="0.002010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:57.513163" elapsed="0.019664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:57.505269" elapsed="0.027786">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:59.535826" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:16:59.534982" 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-10-10T23:16:59.536585" elapsed="0.000381"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:59.536065" elapsed="0.000976"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:59.536021" elapsed="0.001074"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:16:59.552767" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:16:59.553186" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:16:59.553435" 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-10-10T23:16:59.542876" elapsed="0.010613"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:16:59.554293" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:16:59.553646" elapsed="0.000761"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:16:59.555650" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:16:59.554838" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-10T23:16:59.554458" elapsed="0.001407"/>
</branch>
<status status="PASS" start="2026-10-10T23:16:59.553606" elapsed="0.002304"/>
</if>
<kw name="Status 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-10-10T23:16:59.556239" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:16:59.558672" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:16:59.557235" elapsed="0.001608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:16:59.556919" elapsed="0.002090">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:16:59.556655" elapsed="0.002493">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:59.542008" elapsed="0.017393">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:16:59.534017" elapsed="0.025588">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:01.562360" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:01.561508" 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="PASS" start="2026-10-10T23:17:01.563154" elapsed="0.000483"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:01.562604" elapsed="0.001112"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:01.562558" elapsed="0.001240"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:01.578452" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:01.578748" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:01.578974" 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-10-10T23:17:01.569357" elapsed="0.009671"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:01.579767" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:01.579183" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:01.581181" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:17:01.580402" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:01.579956" elapsed="0.001433"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:01.579143" elapsed="0.002291"/>
</if>
<kw name="Status 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-10-10T23:17:01.581737" elapsed="0.000338"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:01.583793" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:01.582760" elapsed="0.001185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:17:01.582461" elapsed="0.001631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:17:01.582186" elapsed="0.002061">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:01.568482" elapsed="0.015971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:01.560546" elapsed="0.024097">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:03.587562" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:03.586724" 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-10-10T23:17:03.588351" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:03.587826" elapsed="0.001018"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:03.587756" elapsed="0.001147"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:03.604947" level="INFO">GET Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:03.605274" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:03.605499" 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-10-10T23:17:03.595025" elapsed="0.010530"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:03.606327" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:03.605712" elapsed="0.000731"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:03.607660" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:17:03.606878" elapsed="0.000884"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:03.606493" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:03.605672" elapsed="0.002222"/>
</if>
<kw name="Status 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-10-10T23:17:03.608235" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:03.610298" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:03.609289" elapsed="0.001167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-10-10T23:17:03.608965" elapsed="0.001637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-10T23:17:03.608653" elapsed="0.002072">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:03.594140" elapsed="0.016847">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:03.585798" elapsed="0.025519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-10-10T23:17:03.611504" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:15:32.369683" elapsed="91.242033">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:03.612226" elapsed="0.000054"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:03.614086" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-10T23:17:03.923401" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:17:03.923653" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:17:03.923746" 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-10-10T23:17:03.923860" 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-10-10T23:17:03.613696" elapsed="0.310214"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:03.924945" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:17:03.924394" elapsed="0.000643"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:03.925792" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-10T23:17:04.273426" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:17:04.273844" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:17:04.273941" 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-10-10T23:17:04.274029" 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-10-10T23:17:03.925443" elapsed="0.348637"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.275125" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-10T23:17:04.356933" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:17:04.357180" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-10T23:17:04.357319" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:17:04.357404" 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-10-10T23:17:04.274659" elapsed="0.082792"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.358106" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-10T23:17:04.414330" 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-10-10T23:17:04.357892" elapsed="0.056573"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:04.429605" level="INFO">DELETE Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:04.429711" level="INFO">DELETE Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:04.429938" 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-10-10T23:17:04.414808" elapsed="0.015185"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:04.439150" level="INFO">DELETE Request : url=http://10.30.171.136: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=node017i4d6r7o52sn1sqi5himvh1c73.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:04.439509" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:17:04.439913" 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-10-10T23:17:04.430371" elapsed="0.009601"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-10T23:17:03.612930" elapsed="0.827208"/>
</kw>
<doc>CallHome SSH device registered with wrong global credentials should fail to mount.</doc>
<status status="FAIL" start="2026-10-10T23:15:31.519936" elapsed="92.920355">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvbYto2SmNTg7eRkP+nVCgbDdF5w1m1+xgj0H0xwmzWMp+Y4s3iS9tDzR+OfHBDuP+NO50V0jZHdsUzVJeAUNa7Wkz/kGWyIplP3D5jDPf5OU8/RqxkPYQKjbSxZTEvB8VBqnGaBChCwuIJUynefmDrJPQDq2JfXBXWei483Q4+iQyjWDm1zzFylSdu8pM/PHaB9LO0wMnu7I7KcVCi9/NWNQWdEY+Yl9HFJdtCoJvTLMIQ/4EfIwL4kS8jE4Lli6cM6oRQ5wqV9BL6n/z9MBe4pDcKXc4GEb4PKnV2HzfNytZS9hikXAb+vLj6cwk0ymT6K2GtclKaxwJertyfgAp"}}]}}}' 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-10-10T23:17:04.444486" level="INFO">Creating Session using : alias=session, url=http://10.30.171.136:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x78b330c5b450&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-10T23:17:04.444005" elapsed="0.000829"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.445458" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-10T23:17:04.461883" 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-10-10T23:17:04.445256" elapsed="0.016761"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.462707" 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-10-10T23:17:04.757804" 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-10-10T23:17:04.462506" elapsed="0.295437"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.758600" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-10T23:17:04.806839" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:17:04.807056" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCgzBYD4hQLLcCwcjGYVlcSPsaKQJXPNVE++Dtm6HR9Yj0jrnUvEdlCCP/pAqJ1Rukqa3QVrLzTKHhCvsJrnXonMDgWAzPKqjezUq6vDKPD8G3dK3FQpLAa2hihaRHzN5S3aPBsX7y/lBGfycH8wCWw1xdoiPclzNGwJHwAfZCR...</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-10-10T23:17:04.758383" elapsed="0.048729"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:17:04.811317" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCgzBYD4hQLLcCwcjGYVlcSPsaKQJXPNVE++Dtm6HR9Yj0jrnUvEdlCCP/pAqJ1Rukqa3QVrLzTKHhCvsJrnXonMDgWAzPKqjezUq6vDKPD8G3dK3FQpLAa2hihaRHzN5S3aPBsX7y/lBGfycH8wCWw1xdoiPclzNGwJHwAfZCR...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:17:04.807543" elapsed="0.003877"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-10-10T23:17:04.443309" elapsed="0.368236"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.851887" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:17:04.812570" elapsed="0.039449"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.862458" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:17:04.852421" elapsed="0.010159"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-10T23:17:04.811903" 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-10-10T23:17:04.864596" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:04.863961" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-10T23:17:04.865980" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:17:04.866288" 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-10-10T23:17:04.865678" elapsed="0.000667"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:17:04.867379" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:17:04.866684" elapsed="0.000858"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:04.865062" elapsed="0.002592"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:04.864757" elapsed="0.002945"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:04.863915" elapsed="0.003830"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.868626" 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-10-10T23:17:04.868154" elapsed="0.000529"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.869476" 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-10-10T23:17:04.869037" elapsed="0.000528"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.870366" 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-10-10T23:17:04.869926" elapsed="0.000496"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.871170" 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-10-10T23:17:04.870749" elapsed="0.000506"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:04.892384" level="INFO">POST Request : url=http://10.30.171.136: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB"
        }
    }
}
 
 </msg>
<msg time="2026-10-10T23:17:04.892501" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0y7ktjpnxjeb7827b6zncy8lg4.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 09-Oct-2026 23:17:04 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=incorrect_hostname', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:04.892699" 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-10-10T23:17:04.871550" elapsed="0.021201"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:17:04.893140" elapsed="0.000838"/>
</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-10-10T23:17:04.863253" elapsed="0.030853"/>
</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-10-10T23:17:04.896928" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_device_hostkey_only.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:17:04.897217" 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-10-10T23:17:04.896647" elapsed="0.000627"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:17:04.898291" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:17:04.897614" elapsed="0.000765"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:04.896009" elapsed="0.002477"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:04.895442" elapsed="0.003091"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-10T23:17:04.898898" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:04.898584" elapsed="0.000412"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:04.895405" elapsed="0.003633"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.899813" 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-10-10T23:17:04.899369" elapsed="0.000503"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.900625" 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-10-10T23:17:04.900224" elapsed="0.000521"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.901579" 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-10-10T23:17:04.901145" elapsed="0.000488"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:04.902460" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCgzBYD4hQLLcCwcjGYVlcSPsaKQJXPNVE++Dtm6HR9Yj0jrnUvEdlCCP/pAqJ1...</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-10-10T23:17:04.902029" elapsed="0.000487"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:04.916554" level="INFO">POST Request : url=http://10.30.171.136: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=node0y7ktjpnxjeb7827b6zncy8lg4.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCgzBYD4hQLLcCwcjGYVlcSPsaKQJXPNVE++Dtm6HR9Yj0jrnUvEdlCCP/pAqJ1Rukqa3QVrLzTKHhCvsJrnXonMDgWAzPKqjezUq6vDKPD8G3dK3FQpLAa2hihaRHzN5S3aPBsX7y/lBGfycH8wCWw1xdoiPclzNGwJHwAfZCRHyKxEq6OOX7ca5sfHMoVcHfhZKP/v7LfpcMuLduw5GTHb+WFIHM9Mofiia6qOGsbnafEEJWrwJHOOEiG3G1spaayyUc1dVTf/IOZaUAh3Az4dmsA86/Fwp26/9wm+mO7V9XL8VR33oVbVMHRLNFLgBKclUkfZkLGMTD5InbHBkE7"
        }
    }
}
 
 </msg>
<msg time="2026-10-10T23:17:04.916660" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:04.916866" 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-10-10T23:17:04.902836" elapsed="0.014083"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:17:04.917304" elapsed="0.000756"/>
</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-10-10T23:17:04.894614" elapsed="0.023571"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:04.918951" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-10T23:17:05.226371" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:17:05.226617" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:17:05.226707" 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-10-10T23:17:05.226815" 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-10-10T23:17:04.918592" elapsed="0.308272"/>
</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-10-10T23:17:05.232707" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:05.231976" elapsed="0.000789"/>
</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-10-10T23:17:05.233439" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:05.232935" elapsed="0.000621"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:05.232896" elapsed="0.000713"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:05.248973" level="INFO">GET Request : url=http://10.30.171.136: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=node0y7ktjpnxjeb7827b6zncy8lg4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:05.249315" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCgzBYD4hQLLcCwcjGYVlcSPsaKQJXPNVE++Dtm6HR9Yj0jrnUvEdlCCP/pAqJ1Rukqa3QVrLzTKHhCvsJrnXonMDgWAzPKqjezUq6vDKPD8G3dK3FQpLAa2hihaRHzN5S3aPBsX7y/lBGfycH8wCWw1xdoiPclzNGwJHwAfZCRHyKxEq6OOX7ca5sfHMoVcHfhZKP/v7LfpcMuLduw5GTHb+WFIHM9Mofiia6qOGsbnafEEJWrwJHOOEiG3G1spaayyUc1dVTf/IOZaUAh3Az4dmsA86/Fwp26/9wm+mO7V9XL8VR33oVbVMHRLNFLgBKclUkfZkLGMTD5InbHBkE7"}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:05.249543" 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-10-10T23:17:05.239329" elapsed="0.010268"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:05.250428" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:05.249752" elapsed="0.000791"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:05.251815" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"incorrect_hostname","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCgzBYD4hQLLcCwcjGYVlcSPsaKQJXPNVE++Dtm6HR9Yj0jrnUvEdlCCP/pAqJ1Rukqa3QVrLzTKHhCvsJrnXonMDgWAzPKqjezUq6vDKPD8G3dK3FQpLAa2hihaRHzN5S3aPBsX7y/lBGfycH8wCWw1xdoiPclzNGwJHwAfZCRHyKxEq6OOX7ca5sfHMoVcHfhZKP/v7LfpcMuLduw5GTHb+WFIHM9Mofiia6qOGsbnafEEJWrwJHOOEiG3G1spaayyUc1dVTf/IOZaUAh3Az4dmsA86/Fwp26/9wm+mO7V9XL8VR33oVbVMHRLNFLgBKclUkfZkLGMTD5InbHBkE7"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:17:05.250980" elapsed="0.000950"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:05.250593" elapsed="0.001405"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:05.249713" elapsed="0.002330"/>
</if>
<kw name="Status 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-10-10T23:17:05.252373" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:17:05.253457" elapsed="0.000932"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-10T23:17:05.253136" elapsed="0.001332"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:17:05.254941" elapsed="0.000919"/>
</kw>
<var name="${i}">"device-status":"DISCONNECTED"</var>
<status status="PASS" start="2026-10-10T23:17:05.254633" elapsed="0.001307"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="PASS" start="2026-10-10T23:17:05.252887" elapsed="0.003114"/>
</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-10-10T23:17:05.238461" elapsed="0.017655"/>
</kw>
<arg>DISCONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="PASS" start="2026-10-10T23:17:05.231106" elapsed="0.025150"/>
</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-10-10T23:17:05.227316" elapsed="0.029034"/>
</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-10-10T23:17:05.298273" level="INFO">GET Request : url=http://10.30.171.136: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=node0y7ktjpnxjeb7827b6zncy8lg4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:05.298533" level="INFO">GET Response : url=http://10.30.171.136: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-10-10T23:17:05.298736" 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-10-10T23:17:05.263847" elapsed="0.034965"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:05.299549" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:05.298969" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:05.300906" 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-10-10T23:17:05.300099" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:05.299714" elapsed="0.001369"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:05.298929" elapsed="0.002199"/>
</if>
<kw name="Status 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-10-10T23:17:05.301454" elapsed="0.000303"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:05.303451" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:05.302432" elapsed="0.001255">'{"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-10-10T23:17:05.302117" elapsed="0.001755">'{"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-10-10T23:17:05.301890" elapsed="0.002114">'{"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-10-10T23:17:05.262940" elapsed="0.041300">'{"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-10-10T23:17:05.257860" elapsed="0.046741"/>
</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-10-10T23:17:05.256721" elapsed="0.047992"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:05.306429" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-10T23:17:05.614293" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:17:05.614544" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:17:05.614636" 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-10-10T23:17:05.614721" 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-10-10T23:17:05.306064" elapsed="0.308736"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:05.615832" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:17:05.615270" elapsed="0.000652"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:05.616654" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-10T23:17:05.957114" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:17:05.957404" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:17:05.957497" 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-10-10T23:17:05.957581" 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-10-10T23:17:05.616321" elapsed="0.341308"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:05.958459" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-10T23:17:06.040142" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:17:06.040426" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-10T23:17:06.040520" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:17:06.040601" 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-10-10T23:17:05.958081" elapsed="0.082642"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:06.041422" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-10T23:17:06.093994" 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-10-10T23:17:06.041179" elapsed="0.052950"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:06.107282" level="INFO">DELETE Request : url=http://10.30.171.136: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=node0y7ktjpnxjeb7827b6zncy8lg4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:06.107382" level="INFO">DELETE Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:06.107594" 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-10-10T23:17:06.094480" elapsed="0.013170"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:06.116874" level="INFO">DELETE Request : url=http://10.30.171.136: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=node0y7ktjpnxjeb7827b6zncy8lg4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:06.117121" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:17:06.117387" 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-10-10T23:17:06.107994" elapsed="0.009448"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-10T23:17:05.305303" elapsed="0.812278"/>
</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-10-10T23:17:04.441597" elapsed="1.676066"/>
</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-10-10T23:17:06.120799" level="INFO">Creating Session using : alias=session, url=http://10.30.171.136:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x78b33036ee50&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-10T23:17:06.120326" elapsed="0.000762"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:06.121692" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-10T23:17:06.141830" 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-10-10T23:17:06.121496" elapsed="0.020456"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:06.142563" 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-10-10T23:17:06.498474" 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-10-10T23:17:06.142364" elapsed="0.356245"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:06.499286" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-10T23:17:06.546044" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:17:06.546296" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDOuoEZG3gaynLPw4uVTVIon3EpcPKdDvfla05bDyutnik492RK4r9p4cSQ0NC/MopLgO3EHPka50X8EMsqj4QzbmDOXvtHnP47WRy+t8+u2LM2DlMPiE9GXVjJNatnpM0urEjgsM4gZB3xTI3mOKJzCJymzO42KddVXeXq9qC2...</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-10-10T23:17:06.499027" elapsed="0.047327"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:17:06.549925" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDOuoEZG3gaynLPw4uVTVIon3EpcPKdDvfla05bDyutnik492RK4r9p4cSQ0NC/MopLgO3EHPka50X8EMsqj4QzbmDOXvtHnP47WRy+t8+u2LM2DlMPiE9GXVjJNatnpM0urEjgsM4gZB3xTI3mOKJzCJymzO42KddVXeXq9qC2...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:17:06.546725" elapsed="0.003297"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-10-10T23:17:06.119591" elapsed="0.430552"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:17:06.591490" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:17:06.551216" elapsed="0.040400"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:17:06.602746" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:17:06.592001" elapsed="0.010976"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-10T23:17:06.550508" elapsed="0.052599"/>
</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-10-10T23:17:06.604967" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:06.604363" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-10T23:17:06.606335" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/create_ssh_device.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:17:06.606604" 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-10-10T23:17:06.606045" elapsed="0.000615"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:17:06.607697" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:17:06.607022" elapsed="0.000786"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:06.605441" elapsed="0.002480"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:06.605126" elapsed="0.002844"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:06.604318" elapsed="0.003696"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:06.608803" 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-10-10T23:17:06.608350" elapsed="0.000512"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:06.609629" 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-10-10T23:17:06.609218" elapsed="0.000467"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:06.610459" 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-10-10T23:17:06.610031" elapsed="0.000483"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:17:06.611302" 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-10-10T23:17:06.610872" elapsed="0.000487"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:06.630697" level="INFO">POST Request : url=http://10.30.171.136: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB"
        }
    }
}
 
 </msg>
<msg time="2026-10-10T23:17:06.630850" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01i6nxppdegjxscc0e24t5hlbx5.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 09-Oct-2026 23:17:06 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:06.631036" 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-10-10T23:17:06.611650" elapsed="0.019440"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-10T23:17:06.631480" elapsed="0.000839"/>
</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-10-10T23:17:06.603629" elapsed="0.028815"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:17:06.633235" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-10T23:17:06.939919" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:17:06.940165" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:17:06.940299" 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-10-10T23:17:06.940456" 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-10-10T23:17:06.632870" elapsed="0.307637"/>
</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-10-10T23:17:06.944080" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:06.943363" elapsed="0.000775"/>
</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-10-10T23:17:06.944828" elapsed="0.000389"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:06.944327" elapsed="0.000971"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:06.944284" elapsed="0.001067"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:06.959992" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:06.960330" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:06.960555" 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-10-10T23:17:06.950950" elapsed="0.009660"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:06.961377" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:06.960763" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:06.962745" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:06.961940" elapsed="0.001026"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:06.961542" elapsed="0.001495"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:06.960724" elapsed="0.002356"/>
</if>
<kw name="Status 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-10-10T23:17:06.963419" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:06.965514" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:06.964448" elapsed="0.001224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:06.964127" elapsed="0.001722">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:06.963883" elapsed="0.002094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:06.950070" elapsed="0.016221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:06.942595" elapsed="0.023898">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:08.968846" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:08.968062" elapsed="0.000848"/>
</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-10-10T23:17:08.969581" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:08.969069" elapsed="0.001002"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:08.969028" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:08.985318" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:08.985595" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:08.985816" 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-10-10T23:17:08.975604" elapsed="0.010268"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:08.986613" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:08.986030" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:08.987977" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:08.987163" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:08.986801" elapsed="0.001348"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:08.985989" elapsed="0.002285"/>
</if>
<kw name="Status 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-10-10T23:17:08.988590" elapsed="0.000375"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:08.991086" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:08.990057" elapsed="0.001207">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:08.989340" elapsed="0.002077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:08.989074" elapsed="0.002545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:08.974738" elapsed="0.017131">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:08.967287" elapsed="0.024779">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:10.994618" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:10.993840" elapsed="0.000840"/>
</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-10-10T23:17:10.995375" elapsed="0.000357"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:10.994865" elapsed="0.001060"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:10.994822" elapsed="0.001159"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:11.010912" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:11.011238" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:11.011450" 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-10-10T23:17:11.001615" elapsed="0.009888"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:11.012271" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:11.011663" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:11.013605" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:11.012818" elapsed="0.000893"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:11.012436" elapsed="0.001366"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:11.011622" elapsed="0.002226"/>
</if>
<kw name="Status 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-10-10T23:17:11.014145" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:11.016322" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:11.015174" elapsed="0.001296">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:11.014862" elapsed="0.001829">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:11.014596" elapsed="0.002249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:11.000732" elapsed="0.016320">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:10.992981" elapsed="0.024296">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:13.019891" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:13.019088" elapsed="0.000870"/>
</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-10-10T23:17:13.020633" elapsed="0.000381"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:13.020124" elapsed="0.000967"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:13.020081" elapsed="0.001062"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:13.037717" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:13.038035" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:13.038297" 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-10-10T23:17:13.027144" elapsed="0.011210"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:13.039076" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:13.038514" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:13.040567" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:13.039638" elapsed="0.001036"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:13.039273" elapsed="0.001470"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:13.038475" elapsed="0.002334"/>
</if>
<kw name="Status 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-10-10T23:17:13.041107" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:13.043262" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:13.042246" elapsed="0.001248">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:13.041925" elapsed="0.001722">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:13.041564" elapsed="0.002236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:13.026294" elapsed="0.017717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:13.018257" elapsed="0.025977">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:15.046595" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:15.045832" elapsed="0.000822"/>
</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-10-10T23:17:15.047341" elapsed="0.000353"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:15.046836" elapsed="0.000955"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:15.046793" elapsed="0.001054"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:15.064677" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:15.065015" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:15.065250" 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-10-10T23:17:15.053334" elapsed="0.011973"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:15.066024" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:15.065461" elapsed="0.000677"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:15.067391" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:15.066580" elapsed="0.000990"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:15.066216" elapsed="0.001424"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:15.065422" elapsed="0.002262"/>
</if>
<kw name="Status 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-10-10T23:17:15.068006" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:15.070036" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:15.069034" elapsed="0.001150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:15.068722" elapsed="0.001645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:15.068486" elapsed="0.002005">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:15.052450" elapsed="0.018241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:15.044999" elapsed="0.025908">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:17.074100" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:17.072716" elapsed="0.001452"/>
</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-10-10T23:17:17.074926" elapsed="0.000403"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:17.074371" elapsed="0.001038"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:17.074325" elapsed="0.001139"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:17.089931" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:17.090269" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:17.090576" 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-10-10T23:17:17.080984" elapsed="0.009648"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:17.091406" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:17.090817" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:17.092748" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:17.091957" elapsed="0.000954"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:17.091574" elapsed="0.001407"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:17.090750" elapsed="0.002276"/>
</if>
<kw name="Status 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-10-10T23:17:17.093362" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:17.095432" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:17.094388" elapsed="0.001196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:17.094064" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:17.093819" elapsed="0.002064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:17.080109" elapsed="0.015978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:17.071705" elapsed="0.024606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:19.098884" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:19.098033" elapsed="0.000916"/>
</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-10-10T23:17:19.099635" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:19.099117" elapsed="0.000975"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:19.099074" elapsed="0.001070"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:19.115443" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:19.115739" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:19.115971" 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-10-10T23:17:19.105655" elapsed="0.010369"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:19.116761" elapsed="0.000105"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:19.116179" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:19.118155" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:19.117373" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:19.116982" elapsed="0.001381"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:19.116140" elapsed="0.002268"/>
</if>
<kw name="Status 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-10-10T23:17:19.118706" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:19.120763" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:19.119718" elapsed="0.001218">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:19.119429" elapsed="0.001653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:19.119157" elapsed="0.002078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:19.104806" elapsed="0.016635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:19.097144" elapsed="0.024487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:21.124605" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:21.123826" elapsed="0.000843"/>
</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-10-10T23:17:21.125372" elapsed="0.000360"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:21.124858" elapsed="0.000972"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:21.124814" elapsed="0.001069"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:21.140271" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:21.140562" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:21.140809" 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-10-10T23:17:21.131447" elapsed="0.009420"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:21.141604" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:21.141024" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:21.142977" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:21.142160" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:21.141790" elapsed="0.001362"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:21.140986" elapsed="0.002242"/>
</if>
<kw name="Status 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-10-10T23:17:21.143529" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:21.145583" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:21.144542" elapsed="0.001192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:21.144253" elapsed="0.001668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:21.143981" elapsed="0.002065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:21.130574" elapsed="0.015707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:21.122981" elapsed="0.023580">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:23.149089" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:23.148302" elapsed="0.000852"/>
</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-10-10T23:17:23.149882" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:23.149352" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:23.149309" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:23.165411" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:23.165692" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:23.165918" 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-10-10T23:17:23.156462" elapsed="0.009509"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:23.166709" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:23.166127" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:23.168063" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:23.167287" elapsed="0.000880"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:23.166900" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:23.166088" elapsed="0.002224"/>
</if>
<kw name="Status 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-10-10T23:17:23.168609" elapsed="0.000338"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:23.171276" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:23.169614" elapsed="0.001815">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:23.169324" elapsed="0.002254">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:23.169057" elapsed="0.002646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:23.155570" elapsed="0.016448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:23.147419" elapsed="0.024827">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:25.174962" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:25.174136" elapsed="0.000891"/>
</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-10-10T23:17:25.175715" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:25.175227" elapsed="0.000946"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:25.175152" elapsed="0.001107"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:25.191409" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:25.191701" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:25.191956" 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-10-10T23:17:25.181792" elapsed="0.010222"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:25.192846" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:25.192171" elapsed="0.000793"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:25.194227" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:25.193406" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:25.193014" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:25.192131" elapsed="0.002315"/>
</if>
<kw name="Status 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-10-10T23:17:25.194744" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:25.196827" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:25.195767" elapsed="0.001213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:25.195474" elapsed="0.001655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:25.195225" elapsed="0.002152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:25.180923" elapsed="0.016668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:25.173263" elapsed="0.024553">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:27.200508" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:27.199661" 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-10-10T23:17:27.201297" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:27.200750" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:27.200705" elapsed="0.001112"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:27.216939" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:27.217272" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:27.217501" 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-10-10T23:17:27.207765" elapsed="0.009791"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:27.218332" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:27.217712" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:27.219660" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:27.218878" elapsed="0.000887"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:27.218497" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:27.217673" elapsed="0.002258"/>
</if>
<kw name="Status 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-10-10T23:17:27.220263" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:27.222315" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:27.221277" elapsed="0.001191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:27.220957" elapsed="0.001739">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:27.220688" elapsed="0.002161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:27.206910" elapsed="0.016146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:27.198692" elapsed="0.024589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:29.226057" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:29.225251" elapsed="0.000873"/>
</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-10-10T23:17:29.226876" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:29.226331" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:29.226286" elapsed="0.001117"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:29.242106" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:29.242438" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:29.242642" 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-10-10T23:17:29.232930" elapsed="0.009766"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:29.243453" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:29.242875" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:29.244854" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:29.244002" elapsed="0.000961"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:29.243618" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:29.242836" elapsed="0.002237"/>
</if>
<kw name="Status 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-10-10T23:17:29.245406" elapsed="0.000307"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:29.247400" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:29.246401" elapsed="0.001239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:29.246082" elapsed="0.001734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:29.245843" elapsed="0.002103">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:29.232060" elapsed="0.016091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:29.224312" elapsed="0.024069">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:31.251538" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:31.250150" elapsed="0.001452"/>
</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-10-10T23:17:31.252330" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:31.251769" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:31.251726" elapsed="0.001119"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:31.269699" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:31.270010" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:31.270263" 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-10-10T23:17:31.258452" elapsed="0.011869"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:31.271062" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:31.270477" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:31.272434" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:31.271623" elapsed="0.000998"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:31.271260" elapsed="0.001432"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:31.270438" elapsed="0.002298"/>
</if>
<kw name="Status 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-10-10T23:17:31.273126" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:31.275229" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:31.274167" elapsed="0.001213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:31.273859" elapsed="0.001666">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:31.273580" elapsed="0.002070">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:31.257493" elapsed="0.018380">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:31.249255" elapsed="0.026811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:33.278677" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:33.277880" elapsed="0.000864"/>
</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-10-10T23:17:33.279452" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:33.278933" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:33.278890" elapsed="0.001084"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:33.294462" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:33.294749" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:33.295060" 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-10-10T23:17:33.285513" elapsed="0.009603"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:33.295876" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:33.295306" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:33.297264" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:33.296429" elapsed="0.000943"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:33.296038" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:33.295266" elapsed="0.002216"/>
</if>
<kw name="Status 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-10-10T23:17:33.297811" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:33.299858" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:33.298820" elapsed="0.001188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:33.298509" elapsed="0.001644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:33.298267" elapsed="0.002045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:33.284639" elapsed="0.015876">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:33.276937" elapsed="0.023767">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:35.303548" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:35.302769" elapsed="0.000841"/>
</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-10-10T23:17:35.304293" elapsed="0.000356"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:35.303769" elapsed="0.000957"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:35.303728" elapsed="0.001072"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:35.319813" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:35.320093" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:35.320362" 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-10-10T23:17:35.310278" elapsed="0.010140"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:35.321181" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:35.320573" elapsed="0.000761"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:35.322626" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:35.321810" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:35.321385" elapsed="0.001436"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:35.320534" elapsed="0.002334"/>
</if>
<kw name="Status 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-10-10T23:17:35.323169" elapsed="0.000395"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:35.325350" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:35.324345" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:35.323975" elapsed="0.001669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:35.323673" elapsed="0.002091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:35.309414" elapsed="0.016582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:35.301975" elapsed="0.024210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:37.328650" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:37.327876" elapsed="0.000839"/>
</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-10-10T23:17:37.329406" elapsed="0.000353"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:37.328898" elapsed="0.000976"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:37.328856" elapsed="0.001071"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:37.344722" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:37.345023" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:37.345259" 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-10-10T23:17:37.335516" elapsed="0.009800"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:37.346037" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:37.345471" elapsed="0.000678"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:37.347409" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:37.346600" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:37.346229" elapsed="0.001352"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:37.345431" elapsed="0.002194"/>
</if>
<kw name="Status 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-10-10T23:17:37.347951" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:37.350473" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:37.349021" elapsed="0.001600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:37.348631" elapsed="0.002135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:37.348399" elapsed="0.002521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:37.334632" elapsed="0.016490">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:37.327024" elapsed="0.024396">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:39.353834" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:39.353049" elapsed="0.000850"/>
</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-10-10T23:17:39.354581" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:39.354064" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:39.354022" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:39.371443" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:39.371719" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:39.371947" 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-10-10T23:17:39.360600" elapsed="0.011400"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:39.372766" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:39.372180" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:39.374177" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:39.373390" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:39.372949" elapsed="0.001435"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:39.372136" elapsed="0.002291"/>
</if>
<kw name="Status 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-10-10T23:17:39.374724" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:39.376808" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:39.375760" elapsed="0.001194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:39.375473" elapsed="0.001625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:39.375236" elapsed="0.002016">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:39.359740" elapsed="0.017792">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:39.352244" elapsed="0.025487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:41.380393" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:41.379515" 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="PASS" start="2026-10-10T23:17:41.381218" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:41.380633" elapsed="0.001027"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:41.380589" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:41.399078" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:41.399453" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:41.399676" 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-10-10T23:17:41.390011" elapsed="0.009719"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:41.400497" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:41.399915" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:41.401903" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:41.401041" elapsed="0.000966"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:41.400662" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:41.399875" elapsed="0.002245"/>
</if>
<kw name="Status 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-10-10T23:17:41.402449" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:41.404546" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:41.403458" elapsed="0.001237">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:41.403137" elapsed="0.001727">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:41.402898" elapsed="0.002178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:41.389132" elapsed="0.016183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:41.378582" elapsed="0.026929">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:43.408156" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:43.407360" 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-10-10T23:17:43.408979" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:43.408457" elapsed="0.001044"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:43.408414" elapsed="0.001148"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:43.425226" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:43.425528" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:43.425728" 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-10-10T23:17:43.415091" elapsed="0.010712"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:43.426542" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:43.425962" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:43.427939" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:43.427092" elapsed="0.000960"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:43.426708" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:43.425921" elapsed="0.002245"/>
</if>
<kw name="Status 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-10-10T23:17:43.428506" elapsed="0.000380"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:43.430578" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:43.429563" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:43.429270" elapsed="0.001723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:43.428998" elapsed="0.002126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:43.414245" elapsed="0.017121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:43.406425" elapsed="0.025140">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:45.434698" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:45.433358" elapsed="0.001410"/>
</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-10-10T23:17:45.435478" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:45.434961" elapsed="0.000983"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:45.434918" elapsed="0.001078"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:45.452037" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:45.452382" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:45.452616" 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-10-10T23:17:45.441681" elapsed="0.010990"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:45.453432" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:45.452855" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:45.455029" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:45.453985" elapsed="0.001149"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:45.453599" elapsed="0.001641"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:45.452814" elapsed="0.002484"/>
</if>
<kw name="Status 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-10-10T23:17:45.455629" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:45.457931" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:45.456683" elapsed="0.001474">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:45.456389" elapsed="0.001952">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:45.456121" elapsed="0.002344">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:45.440772" elapsed="0.017896">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:45.432505" elapsed="0.026385">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:47.461315" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:47.460494" 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-10-10T23:17:47.462034" elapsed="0.000395"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:47.461537" elapsed="0.000971"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:47.461497" elapsed="0.001064"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:47.477745" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:47.478042" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:47.478270" 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-10-10T23:17:47.468053" elapsed="0.010276"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:47.479047" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:47.478483" elapsed="0.000679"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:47.480419" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:47.479611" elapsed="0.000991"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:47.479243" elapsed="0.001429"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:47.478445" elapsed="0.002271"/>
</if>
<kw name="Status 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-10-10T23:17:47.481041" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:47.483084" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:47.482029" elapsed="0.001234">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:47.481717" elapsed="0.001694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:47.481487" elapsed="0.002050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:47.467213" elapsed="0.016528">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:47.459668" elapsed="0.024298">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:49.487010" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:49.486225" elapsed="0.000850"/>
</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-10-10T23:17:49.487860" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:49.487274" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:49.487230" elapsed="0.001170"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:49.502911" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:49.503231" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:49.503543" 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-10-10T23:17:49.494152" elapsed="0.009447"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:49.504393" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:49.503756" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:49.505722" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:49.504940" elapsed="0.000909"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:49.504559" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:49.503717" elapsed="0.002244"/>
</if>
<kw name="Status 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-10-10T23:17:49.506290" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:49.508274" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:49.507283" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:49.506962" elapsed="0.001648">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:49.506710" elapsed="0.002042">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:49.493307" elapsed="0.015684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:49.485353" elapsed="0.023830">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:51.511869" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:51.511037" 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-10-10T23:17:51.512645" elapsed="0.000381"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:51.512113" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:51.512068" elapsed="0.001089"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:51.528017" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:51.528351" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:51.528559" 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-10-10T23:17:51.518758" elapsed="0.009856"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:51.529417" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:51.528773" elapsed="0.000760"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:51.530765" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:51.529972" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:51.529583" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:51.528733" elapsed="0.002273"/>
</if>
<kw name="Status 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-10-10T23:17:51.531338" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:51.533881" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:51.532350" elapsed="0.001687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:51.532030" elapsed="0.002187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:51.531758" elapsed="0.002589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:51.517903" elapsed="0.016648">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:51.510079" elapsed="0.024663">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:53.537322" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:53.536514" elapsed="0.000874"/>
</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-10-10T23:17:53.538080" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:53.537553" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:53.537510" elapsed="0.001094"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:53.552960" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:53.553277" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:53.553482" 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-10-10T23:17:53.544155" elapsed="0.009381"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:53.554389" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:53.553692" elapsed="0.000814"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:53.555727" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:53.554941" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:53.554555" elapsed="0.001371"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:53.553653" elapsed="0.002317"/>
</if>
<kw name="Status 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-10-10T23:17:53.556302" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:53.558299" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:53.557307" elapsed="0.001141">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:53.556984" elapsed="0.001608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:53.556721" elapsed="0.001996">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:53.543315" elapsed="0.015628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:53.535644" elapsed="0.023601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:55.561594" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:55.560823" elapsed="0.000833"/>
</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-10-10T23:17:55.562354" elapsed="0.000358"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:55.561840" elapsed="0.000969"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:55.561776" elapsed="0.001088"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:55.578140" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:55.578460" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:55.578683" 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-10-10T23:17:55.568758" elapsed="0.009979"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:55.579494" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:55.578921" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:55.580875" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:55.580043" elapsed="0.000946"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:55.579659" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:55.578881" elapsed="0.002223"/>
</if>
<kw name="Status 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-10-10T23:17:55.581439" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:55.583438" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:55.582430" elapsed="0.001155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:55.582108" elapsed="0.001621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:55.581877" elapsed="0.001996">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:55.567907" elapsed="0.016250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:55.559985" elapsed="0.024436">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:57.586941" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:57.586127" elapsed="0.000880"/>
</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-10-10T23:17:57.587703" elapsed="0.000383"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:57.587175" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:57.587131" elapsed="0.001120"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:57.602667" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:57.602981" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:57.603184" 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-10-10T23:17:57.593814" elapsed="0.009458"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:57.604006" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:57.603429" elapsed="0.000691"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:57.605388" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:57.604569" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:57.604170" elapsed="0.001392"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:57.603390" elapsed="0.002218"/>
</if>
<kw name="Status 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-10-10T23:17:57.605930" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:57.607973" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:57.606937" elapsed="0.001183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:57.606616" elapsed="0.001684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:57.606382" elapsed="0.002120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:57.592942" elapsed="0.015770">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:57.585281" elapsed="0.023653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:59.611889" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:17:59.610538" elapsed="0.001417"/>
</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-10-10T23:17:59.612648" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:59.612123" elapsed="0.001024"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:59.612082" elapsed="0.001151"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:17:59.627625" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:17:59.627935" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:17:59.628159" 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-10-10T23:17:59.618847" elapsed="0.009397"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:17:59.628986" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:17:59.628407" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:17:59.630359" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:59.629548" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:17:59.629153" elapsed="0.001381"/>
</branch>
<status status="PASS" start="2026-10-10T23:17:59.628365" elapsed="0.002213"/>
</if>
<kw name="Status 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-10-10T23:17:59.630904" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:17:59.633261" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:17:59.631967" elapsed="0.001443">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:59.631599" elapsed="0.002039">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:59.631362" elapsed="0.002406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:59.617951" elapsed="0.016046">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:59.609685" elapsed="0.024532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:01.636884" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:01.636054" elapsed="0.000897"/>
</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-10-10T23:18:01.637646" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:01.637122" elapsed="0.000996"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:01.637078" elapsed="0.001093"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:01.652646" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:01.652961" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:01.653166" 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-10-10T23:18:01.643742" elapsed="0.009511"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:01.653988" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:01.653414" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:01.655380" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:01.654553" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:01.654153" elapsed="0.001404"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:01.653373" elapsed="0.002228"/>
</if>
<kw name="Status 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-10-10T23:18:01.655926" elapsed="0.000421"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:01.658095" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:01.657022" elapsed="0.001344">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:01.656697" elapsed="0.001823">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:01.656460" elapsed="0.002184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:01.642892" elapsed="0.015988">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:01.635125" elapsed="0.023953">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:03.662446" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:03.661605" elapsed="0.000910"/>
</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-10-10T23:18:03.663231" elapsed="0.000373"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:03.662685" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:03.662641" elapsed="0.001098"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:03.678180" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:03.678525" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:03.678750" 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-10-10T23:18:03.669453" elapsed="0.009374"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:03.679574" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:03.678989" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:03.680934" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:03.680126" elapsed="0.001095"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:03.679737" elapsed="0.001561"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:03.678948" elapsed="0.002395"/>
</if>
<kw name="Status 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-10-10T23:18:03.681651" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:03.683683" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:03.682664" elapsed="0.001252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:03.682375" elapsed="0.001693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:03.682103" elapsed="0.002121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:03.668579" elapsed="0.015855">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:03.660649" elapsed="0.023980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:05.687402" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:05.686495" 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-10-10T23:18:05.688157" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:05.687646" elapsed="0.000982"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:05.687602" elapsed="0.001078"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:05.702964" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:05.703299" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:05.703596" 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-10-10T23:18:05.694181" elapsed="0.009470"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:05.704421" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:05.703834" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:05.705774" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:05.704983" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:05.704584" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:05.703768" elapsed="0.002249"/>
</if>
<kw name="Status 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-10-10T23:18:05.706348" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:05.708956" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:05.707365" elapsed="0.001745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:05.707046" elapsed="0.002245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:05.706767" elapsed="0.002654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:05.693343" elapsed="0.016280">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:05.685549" elapsed="0.024284">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:07.712579" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:07.711740" 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="PASS" start="2026-10-10T23:18:07.713368" elapsed="0.000365"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:07.712841" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:07.712774" elapsed="0.001118"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:07.728579" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:07.728903" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:07.729107" 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-10-10T23:18:07.719411" elapsed="0.009751"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:07.729929" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:07.729355" elapsed="0.000690"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:07.731302" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:07.730490" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:07.730096" elapsed="0.001380"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:07.729314" elapsed="0.002208"/>
</if>
<kw name="Status 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-10-10T23:18:07.731844" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:07.733905" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:07.732842" elapsed="0.001215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:07.732535" elapsed="0.001698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:07.732298" elapsed="0.002070">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:07.718530" elapsed="0.016041">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:07.710772" elapsed="0.023990">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:09.737437" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:09.736608" 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="PASS" start="2026-10-10T23:18:09.738186" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:09.737672" elapsed="0.001000"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:09.737629" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:09.755909" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:09.756234" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:09.756465" 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-10-10T23:18:09.744913" elapsed="0.011609"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:09.757293" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:09.756682" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:09.758698" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:09.757838" elapsed="0.000987"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:09.757458" elapsed="0.001439"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:09.756641" elapsed="0.002305"/>
</if>
<kw name="Status 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-10-10T23:18:09.759310" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:09.761370" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:09.760363" elapsed="0.001157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:09.759994" elapsed="0.001671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:09.759725" elapsed="0.002084">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:09.744009" elapsed="0.018019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:09.735678" elapsed="0.026683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:11.765614" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:11.764687" 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-10-10T23:18:11.766505" elapsed="0.000407"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:11.765942" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:11.765892" elapsed="0.001156"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:11.781713" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:11.782072" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:11.782313" 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-10-10T23:18:11.772771" elapsed="0.009596"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:11.783111" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:11.782529" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:11.784510" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:11.783683" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:11.783320" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:11.782487" elapsed="0.002242"/>
</if>
<kw name="Status 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-10-10T23:18:11.785080" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:11.787260" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:11.786134" elapsed="0.001293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:11.785835" elapsed="0.001743">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:11.785546" elapsed="0.002158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:11.771910" elapsed="0.016171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:11.763577" elapsed="0.024741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:13.792326" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:13.790702" elapsed="0.001704"/>
</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-10-10T23:18:13.793162" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:13.792607" elapsed="0.001048"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:13.792556" elapsed="0.001156"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:13.807964" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:13.808364" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:13.808622" 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-10-10T23:18:13.799313" elapsed="0.009364"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:13.809620" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:13.808879" elapsed="0.000860"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:13.811073" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:13.810182" elapsed="0.000996"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:13.809812" elapsed="0.001469"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:13.808832" elapsed="0.002496"/>
</if>
<kw name="Status 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-10-10T23:18:13.811628" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:13.813702" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:13.812660" elapsed="0.001225">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:13.812361" elapsed="0.001673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:13.812085" elapsed="0.002236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:13.798426" elapsed="0.016115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:13.789542" elapsed="0.025196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:15.817910" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:15.816976" elapsed="0.001015"/>
</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-10-10T23:18:15.818734" elapsed="0.000404"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:15.818184" elapsed="0.001063"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:15.818133" elapsed="0.001169"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:15.834518" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:15.834859" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:15.835064" 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-10-10T23:18:15.824873" elapsed="0.010245"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:15.835896" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:15.835311" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:15.837280" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:15.836463" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:15.836059" elapsed="0.001397"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:15.835270" elapsed="0.002231"/>
</if>
<kw name="Status 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-10-10T23:18:15.837820" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:15.839870" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:15.838830" elapsed="0.001196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:15.838519" elapsed="0.001787">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:15.838278" elapsed="0.002162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:15.824003" elapsed="0.016647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:15.815915" elapsed="0.024953">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:17.844377" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:17.843504" 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-10-10T23:18:17.845161" elapsed="0.000404"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:17.844631" elapsed="0.001015"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:17.844586" elapsed="0.001113"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:17.860153" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:17.860523" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:17.860748" 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-10-10T23:18:17.851251" elapsed="0.009578"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:17.861569" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:17.860987" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:17.862928" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:17.862114" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:17.861731" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:17.860947" elapsed="0.002195"/>
</if>
<kw name="Status 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-10-10T23:18:17.863472" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:17.865556" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:17.864476" elapsed="0.001358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:17.864157" elapsed="0.001837">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:17.863919" elapsed="0.002200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:17.850376" elapsed="0.015982">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:17.842536" elapsed="0.024014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:19.869448" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:19.868584" 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-10-10T23:18:19.870260" elapsed="0.000376"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:19.869706" elapsed="0.001007"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:19.869657" elapsed="0.001113"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:19.885467" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:19.885766" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:19.885988" 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-10-10T23:18:19.876380" elapsed="0.009661"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:19.886766" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:19.886223" elapsed="0.000678"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:19.888121" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:19.887352" elapsed="0.001016"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:19.886950" elapsed="0.001490"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:19.886154" elapsed="0.002331"/>
</if>
<kw name="Status 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-10-10T23:18:19.888783" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:19.891324" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:19.889816" elapsed="0.001669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:19.889508" elapsed="0.002128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:19.889262" elapsed="0.002499">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:19.875494" elapsed="0.016498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:19.867578" elapsed="0.024604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:21.895046" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:21.894219" elapsed="0.000898"/>
</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-10-10T23:18:21.895861" elapsed="0.000403"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:21.895330" elapsed="0.001014"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:21.895281" elapsed="0.001120"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:21.911503" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:21.911838" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:21.912136" 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-10-10T23:18:21.901967" elapsed="0.010262"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:21.912967" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:21.912392" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:21.914371" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:21.913528" elapsed="0.000947"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:21.913129" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:21.912352" elapsed="0.002234"/>
</if>
<kw name="Status 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-10-10T23:18:21.914925" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:21.917024" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:21.915945" elapsed="0.001231">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:21.915624" elapsed="0.001733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:21.915383" elapsed="0.002099">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:21.901093" elapsed="0.016589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:21.893228" elapsed="0.024682">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:23.920837" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:23.919965" 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-10-10T23:18:23.921637" elapsed="0.000384"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:23.921089" elapsed="0.001009"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:23.921041" elapsed="0.001111"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:23.940318" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:23.940634" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:23.940883" 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-10-10T23:18:23.931111" elapsed="0.009829"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:23.941691" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:23.941098" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:23.943065" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:23.942277" elapsed="0.000893"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:23.941887" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:23.941058" elapsed="0.002262"/>
</if>
<kw name="Status 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-10-10T23:18:23.943618" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:23.945702" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:23.944642" elapsed="0.001274">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:23.944352" elapsed="0.001714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:23.944076" elapsed="0.002141">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:23.930255" elapsed="0.016172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:23.918949" elapsed="0.027667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:25.949550" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:25.948675" 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-10-10T23:18:25.950406" elapsed="0.000372"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:25.949837" elapsed="0.001042"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:25.949762" elapsed="0.001173"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:25.966116" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:25.966451" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:25.966650" 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-10-10T23:18:25.956841" elapsed="0.009863"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:25.967470" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:25.966884" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:25.968858" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:25.968024" elapsed="0.000942"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:25.967633" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:25.966844" elapsed="0.002234"/>
</if>
<kw name="Status 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-10-10T23:18:25.969405" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:25.971422" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:25.970396" elapsed="0.001178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:25.970079" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:25.969840" elapsed="0.002026">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:25.955864" elapsed="0.016207">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:25.947687" elapsed="0.024696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:27.975943" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:27.974497" elapsed="0.001519"/>
</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-10-10T23:18:27.976729" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:27.976221" elapsed="0.001015"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:27.976147" elapsed="0.001145"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:27.990871" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:27.991180" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:27.991440" 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-10-10T23:18:27.982881" elapsed="0.008613"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:27.992258" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:27.991651" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:27.993602" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:27.992789" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:27.992425" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:27.991612" elapsed="0.002229"/>
</if>
<kw name="Status 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-10-10T23:18:27.994164" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:27.996231" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:27.995183" elapsed="0.001204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:27.994894" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:27.994622" elapsed="0.002038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:27.982006" elapsed="0.014971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:27.973521" elapsed="0.023653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:30.000078" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:29.999237" elapsed="0.000912"/>
</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-10-10T23:18:30.000890" elapsed="0.000402"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:30.000358" elapsed="0.001014"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:30.000311" elapsed="0.001116"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:30.016473" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:30.016772" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:30.017001" 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-10-10T23:18:30.007128" elapsed="0.009928"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:30.017796" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:30.017245" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:30.019181" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:30.018386" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:30.017990" elapsed="0.001398"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:30.017173" elapsed="0.002260"/>
</if>
<kw name="Status 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-10-10T23:18:30.019732" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:30.021843" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:30.020750" elapsed="0.001245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:30.020456" elapsed="0.001687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:30.020184" elapsed="0.002213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:30.006277" elapsed="0.016332">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:29.998258" elapsed="0.024569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:32.025973" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:32.025370" elapsed="0.000658"/>
</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-10-10T23:18:32.026551" elapsed="0.000268"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:32.026169" elapsed="0.000701"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:32.026134" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:32.038292" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:32.038537" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:32.038683" 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-10-10T23:18:32.030406" elapsed="0.008313"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:32.039218" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:32.038838" elapsed="0.000454"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:32.040060" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:32.039560" elapsed="0.000568"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:32.039324" elapsed="0.000848"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:32.038794" elapsed="0.001427"/>
</if>
<kw name="Status 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-10-10T23:18:32.040412" elapsed="0.000206"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:32.041746" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:32.041060" elapsed="0.000813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:32.040868" elapsed="0.001203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:32.040691" elapsed="0.001465">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:32.029868" elapsed="0.012450">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:32.024580" elapsed="0.017861">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:34.045294" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:34.044434" 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-10-10T23:18:34.046094" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:34.045556" elapsed="0.001027"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:34.045508" elapsed="0.001133"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:34.061113" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:34.061476" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:34.061681" 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-10-10T23:18:34.052377" elapsed="0.009357"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:34.062493" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:34.061916" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:34.063856" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:34.063048" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:34.062658" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:34.061876" elapsed="0.002198"/>
</if>
<kw name="Status 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-10-10T23:18:34.064427" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:34.067744" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:34.065531" elapsed="0.002491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:34.065157" elapsed="0.003018">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:34.064914" elapsed="0.003422">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:34.051471" elapsed="0.017068">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:34.043387" elapsed="0.025409">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:36.071551" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:36.070712" 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="PASS" start="2026-10-10T23:18:36.072503" elapsed="0.000397"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:36.071788" elapsed="0.001191"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:36.071745" elapsed="0.001290"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:36.087330" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:36.087619" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:36.087867" 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-10-10T23:18:36.078765" elapsed="0.009175"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:36.088774" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:36.088126" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:36.090148" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:36.089358" elapsed="0.001017"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:36.088962" elapsed="0.001484"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:36.088071" elapsed="0.002419"/>
</if>
<kw name="Status 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-10-10T23:18:36.090792" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:36.092927" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:36.091874" elapsed="0.001205">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:36.091563" elapsed="0.001696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:36.091323" elapsed="0.002063">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:36.077833" elapsed="0.015756">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:36.069689" elapsed="0.024090">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.096304" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-10T23:18:38.095476" elapsed="0.000898"/>
</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-10-10T23:18:38.097109" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:38.096541" elapsed="0.001061"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:38.096497" elapsed="0.001160"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:38.114078" level="INFO">GET Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:38.114409" level="INFO">GET Response : url=http://10.30.171.136: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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-10T23:18:38.114715" 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-10-10T23:18:38.104461" elapsed="0.010309"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-10T23:18:38.115547" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-10T23:18:38.114964" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:38.116929" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.116104" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-10T23:18:38.115713" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-10T23:18:38.114924" elapsed="0.002222"/>
</if>
<kw name="Status 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-10-10T23:18:38.117479" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:38.119721" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:38.118499" elapsed="0.001402">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.118157" elapsed="0.001893">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.117921" elapsed="0.002253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.103577" elapsed="0.016832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.094602" elapsed="0.026003">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<msg time="2026-10-10T23:18:38.120786" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:17:06.940950" elapsed="91.180070">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.121537" elapsed="0.000046"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:38.123422" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-10T23:18:38.442168" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:18:38.442492" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:18:38.442586" 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-10-10T23:18:38.442672" 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-10-10T23:18:38.123046" elapsed="0.319674"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:38.443767" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:18:38.443229" elapsed="0.000660"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:38.444706" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-10T23:18:38.785740" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:18:38.786150" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:18:38.786409" 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-10-10T23:18:38.786527" 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-10-10T23:18:38.444367" elapsed="0.342209"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:38.787422" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-10T23:18:38.865493" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:38.865745" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-10T23:18:38.865968" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:18:38.866058" 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-10-10T23:18:38.787033" elapsed="0.079073"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:38.866785" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-10T23:18:38.923979" 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-10-10T23:18:38.866572" elapsed="0.057543"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:38.939120" level="INFO">DELETE Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:38.939261" level="INFO">DELETE Response : url=http://10.30.171.136:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:38.939450" 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-10-10T23:18:38.924475" elapsed="0.015028"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:38.947862" level="INFO">DELETE Request : url=http://10.30.171.136: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=node01i6nxppdegjxscc0e24t5hlbx5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:38.948137" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:18:38.948404" 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-10-10T23:18:38.939838" elapsed="0.008620"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-10T23:18:38.122276" elapsed="0.826322"/>
</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-10-10T23:17:06.118297" elapsed="92.830391">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx+L7tSH7Oq+0+qDpjT614mFohYMHfmeTVt1sHm7AshGahJWO3TzMRVTMTjmbnEwmZS5Jxs7kb+Pv7aKX+NKulttPBpH/S+SSiGcY3idks7lvCIh/q0NbQ55zV4ue3Mus/jgUghEewn1QjiaarRZ5T6IG0gvKnUi0bRIV0XvXuc6zAIXVhw6HM3G/lPws0XV2cxm+ADGeHxcuX9CyTx1JxEsepDeiH0GfEogB6tTZIFNbkORn6JGVcU4yP/Hdzz7NeDd86icpONtbZD4Sh0VHXkgzlV3ROoAP+ia48qJMYvuvoTvYM/X4MYwRhyKzN3KAxYL0dZCgGkoh3ttGg1+LB","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-10-10T23:18:38.952341" level="INFO">Creating Session using : alias=session, url=http://10.30.171.136:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x78b330cb2590&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-10-10T23:18:38.951869" elapsed="0.000849"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:38.953356" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-10T23:18:38.975463" 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-10-10T23:18:38.953125" elapsed="0.022465"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:38.976240" 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-10-10T23:18:39.290610" 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-10-10T23:18:38.975997" elapsed="0.314903"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:39.291776" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-10T23:18:39.343804" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:39.344090" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC6NC0kqeRUyZz5VAr24J+XrtDixLbhcOrOpfxz4FOXXt3o1KJ7+0vxxZvL5ok28yzfHjbFa9pWUcu0AbNMuIvxoEg1JCrchIkrAqALUKfl3jMf5L+ZmtHkAf8tRrFI/e8L4nfhhOqEtmi4ckj9QaGl80gBF7iHRlDZJNEB4//3...</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-10-10T23:18:39.291487" elapsed="0.052661"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-10T23:18:39.348774" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC6NC0kqeRUyZz5VAr24J+XrtDixLbhcOrOpfxz4FOXXt3o1KJ7+0vxxZvL5ok28yzfHjbFa9pWUcu0AbNMuIvxoEg1JCrchIkrAqALUKfl3jMf5L+ZmtHkAf8tRrFI/e8L4nfhhOqEtmi4ckj9QaGl80gBF7iHRlDZJNEB4//3...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes the variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-10-10T23:18:39.344630" elapsed="0.004266"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-10-10T23:18:38.950938" elapsed="0.398089"/>
</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-10-10T23:18:39.351157" level="INFO">Executing command 'rm -rf ./certs &amp;&amp; mkdir ./certs'.</msg>
<msg time="2026-10-10T23:18:39.391781" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:39.392077" 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-10-10T23:18:39.350952" elapsed="0.041181"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:18:39.441558" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/libraries/../variables/netconf/callhome/x509_v3.cfg' -&gt; '/home/jenkins/./x509_v3.cfg'</msg>
<arg>/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-10-10T23:18:39.392615" elapsed="0.049072"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:39.442353" level="INFO">Executing command 'openssl genrsa -out ./certs/ca.key 2048'.</msg>
<msg time="2026-10-10T23:18:39.597324" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:39.597536" 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-10-10T23:18:39.442108" elapsed="0.155482"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:39.598283" 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-10-10T23:18:39.643791" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:39.644024" 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-10-10T23:18:39.598007" elapsed="0.046070"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:39.644745" level="INFO">Executing command 'openssl genrsa -out ./certs/server.key 2048'.</msg>
<msg time="2026-10-10T23:18:40.135957" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.136301" 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-10-10T23:18:39.644526" elapsed="0.491833"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.137153" 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-10-10T23:18:40.193863" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.194072" 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-10-10T23:18:40.136871" elapsed="0.057252"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.194770" 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-10-10T23:18:40.250263" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.250717" 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-10-10T23:18:40.194560" elapsed="0.056215"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.251714" level="INFO">Executing command 'openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub'.</msg>
<msg time="2026-10-10T23:18:40.313998" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.314244" 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-10-10T23:18:40.251408" elapsed="0.062891"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.315089" level="INFO">Executing command 'openssl genrsa -out ./certs/client.key 2048'.</msg>
<msg time="2026-10-10T23:18:40.532270" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.532564" 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-10-10T23:18:40.314878" elapsed="0.217742"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.533402" 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-10-10T23:18:40.589863" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.590069" 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-10-10T23:18:40.533101" elapsed="0.057021"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.590760" 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-10-10T23:18:40.650112" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.650388" 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-10-10T23:18:40.590551" elapsed="0.059892"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.651106" level="INFO">Executing command 'mv ./certs ./configuration-files/certs'.</msg>
<msg time="2026-10-10T23:18:40.703668" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.703907" 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-10-10T23:18:40.650882" elapsed="0.053081"/>
</kw>
<doc>Generates certificates for 2-way TLS authentication (ca, server, client)</doc>
<status status="PASS" start="2026-10-10T23:18:39.350286" elapsed="1.353832"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.753044" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:18:40.704549" elapsed="0.048627"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.763988" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:18:40.753580" elapsed="0.010529"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.772785" level="INFO">'/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/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-gate-callhome-only-titanium/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-10-10T23:18:40.764489" elapsed="0.008441"/>
</kw>
<doc>Upload netopeer2 configuration files needed for TLS transport</doc>
<status status="PASS" start="2026-10-10T23:18:39.349458" elapsed="1.423602"/>
</kw>
<kw name="Register keys and certificates in ODL controller" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.774868" level="INFO">Executing command 'cat ./configuration-files/certs/client.key'.</msg>
<msg time="2026-10-10T23:18:40.787702" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:40.787963" level="INFO">${pem-client-key} = -----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC/56CBmokWz6S2
kriZm+BnzXBFFSXYzBUp0SNFqrGMIBfFzG11NOP+kz8RfQuyWlPaZHlNgyJLirS9
k4QgpT2giw8IsF5ffxH4j/2PN4BxTsrrP1z9jMA2qm...</msg>
<msg time="2026-10-10T23:18:40.788060" 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-10-10T23:18:40.774492" elapsed="0.013617"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-10T23:18:40.788793" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/add_keystore_entry.json"&gt;/w/workspace/netconf-csit-1node-gate-callhome-only-titanium/test/csit/variables/netconf/callhome/json/add_keystore_entry.json&lt;/a&gt;'.</msg>
<msg time="2026-10-10T23:18:40.789108" 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-10-10T23:18:40.788504" elapsed="0.000660"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-10T23:18:40.790025" level="INFO">${body} = {
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwg...</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-10-10T23:18:40.789556" elapsed="0.000525"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:40.848558" level="INFO">POST Request : url=http://10.30.171.136: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-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC/56CBmokWz6S2
kriZm+BnzXBFFSXYzBUp0SNFqrGMIBfFzG11NOP+kz8RfQuyWlPaZHlNgyJLirS9
k4QgpT2giw8IsF5ffxH4j/2PN4BxTsrrP1z9jMA2qm8JofMIhH2VU/8ZTdOrUxzI
68aFpLFKuj6Oz2Bp4DIJxlG5YRXhOzfZDzWViNmhNPOSpg0P+fPDDlecXBuNjks+
/uwokTp0ETzIjNgs+o3WZcFbj23y2miga1rwcPaaPMWhUy9ilK+YSxOS99r/py/6
J43hfWQYt15sDAE5TYXb1hP/LlxREfAs9nOGJK/yeRZtyDIQaxl2EB9AerMzIqFU
bBAFzfH5AgMBAAECggEABb3PlMkTlGnidu7lVH0wJdLk6sAy+W1DrdRavo0YkkVs
iKew16qdLqLnpmWMGcovi49pfKrxdfqgpTJaZ+KhuSGn8b3bGPbTihD+yE/kCR/P
HOIwrUpOfuQy/cIJZCYYnsTcUzy7mjral91L+3gdsMtpLzsfmpNRU+8Jx2bS8YHX
hmSc/Ccw6lVGD0Cc7zzE796kTrrrOlVdG95MoxvSglPj3xVCQqdDnW/aFHvDE0BD
I+UFu1LhYKOG+6UXkzH+K39rSmGDrbYGveFbLVffYZpb6uJ8n0bsiWLAsjY3FMN0
lB9ggzzURjYrOoElZ/n6+I5MucDNB6PyWwhkWCWKAQKBgQDpVxGyzLVVpoHeeICB
lG6KAWJxv0pjm7JGiKAEURLviJmDTxSDOUfSASVW4Z5VzXBmFhTL6XypuXlST63j
tQh5beynnuNngN/4ggRTUYnjY0T4uu2QsDoIU8zL5Bx7pyYI48aqZKkOafB3C2dj
kgZjlnbZcrwqDi2JjSNjImopAQKBgQDSinVywX3j8H2yS7SEz5FEAYGSlN8Q230b
bryVVqI27JcyWJWAFOP0C+VxxtS41X+h1qnGkaEjdGBnL9H8B7EtpcVuKp138AOj
+o56afN5NGMmwvxcp9FJdj3z7isBVvofauCls2gs9/GBK0wXbey7BqJXt2on0V4y
L/ZnjfwQ+QKBgQCyvMBQ3t/0aORIHrQJDkMSMXdQPEBmRohr4RH53ISNuWwmGjhT
QFhUdA4/G/omLYTwne92NzcH54wYUfKYXz7LjTlfOKVmzmBBwo4/qFDgPlVB1iZN
07/QSyiv8d8jlOjcnGW8dfjNkrbg6Xpb2ipMtJ/7dxjNeijFmbhGosEBAQKBgHE5
HKg1/imSr0YvCElUBt73oGLfxIYgQ0t5Zdk52cqHuVfN47gZg+0+aImjT8qGpji2
ZF7w+iNC9oUHZnmO+W1+9ImmSUCyxoJswCp8x/6qeZfizCxX42kKOY7wyhfSWniC
1YTG0oM8Y5f/XNBMwT5i9vMNI/19zpZWzMArzx6hAoGBAJm4aAZZvy8GfmtxNlM/
u5+LPXZ2LGFo3ycGk23eokpXYfsEXdDR+1d3I8JjCRMXWbBMlKmENixwN8S7vP/x
1kD4UvOgrjPSV0J2hbuctqVDIOGOhstWU7Sc35lEmoxa12TgmDQ+QE5YUPhr9kN4
C2ZsmI2Wfj3mdkEk8OFb2woU
-----END PRIVATE KEY-----",
                "passphrase": ""
            }
        ]
    }
}
 
 </msg>
<msg time="2026-10-10T23:18:40.849078" level="INFO">POST Response : url=http://10.30.171.136:8181/rests/operations/netconf-keystore:add-keystore-entry 
 status=500, reason=Internal Server Error 
 headers={'Set-Cookie': 'JSESSIONID=node01k5jw6pt29tt0b6xqzyupxqsy6.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 09-Oct-2026 23:18:40 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-10-10T23:18:40.849394" 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-10-10T23:18:40.790442" elapsed="0.059010"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-10T23:18:40.851059" level="FAIL">'[200, 201, 204]' does not contain '500'</msg>
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-10T23:18:40.849932" elapsed="0.001311">'[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-10-10T23:18:40.851659" 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-10-10T23:18:40.852059" 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-10-10T23:18:40.852442" elapsed="0.000042"/>
</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-10-10T23:18:40.852798" elapsed="0.000061"/>
</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-10-10T23:18:40.853171" elapsed="0.000068"/>
</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-10-10T23:18:40.853522" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-10T23:18:40.853910" elapsed="0.000041"/>
</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-10-10T23:18:40.854288" elapsed="0.000047"/>
</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-10-10T23:18:40.854672" elapsed="0.000569"/>
</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-10-10T23:18:40.855572" elapsed="0.000044"/>
</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-10-10T23:18:40.855962" elapsed="0.000041"/>
</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-10-10T23:18:40.856345" elapsed="0.000041"/>
</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-10-10T23:18:40.856664" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-10T23:18:40.857050" elapsed="0.000041"/>
</kw>
<doc>Register pre-configured netopeer2 certificates and key in ODL-netconf keystore</doc>
<status status="FAIL" start="2026-10-10T23:18:40.773708" elapsed="0.083620">'[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-10-10T23:18:40.857689" elapsed="0.000049"/>
</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-10-10T23:18:40.858126" 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-10-10T23:18:40.858592" 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-10-10T23:18:40.859012" elapsed="0.000041"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:40.860863" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-10T23:18:41.168344" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:18:41.168732" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:18:41.168846" 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-10-10T23:18:41.168933" 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-10-10T23:18:40.860481" elapsed="0.308501"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T23:18:41.170460" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T23:18:41.169761" elapsed="0.000790"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:41.171343" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-10T23:18:41.517938" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-10T23:18:41.518350" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:18:41.518446" 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-10-10T23:18:41.518530" 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-10-10T23:18:41.170962" elapsed="0.347618"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:41.519612" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-10T23:18:41.601893" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:41.602134" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-10T23:18:41.602266" level="INFO">${stderr} = </msg>
<msg time="2026-10-10T23:18:41.602355" 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-10-10T23:18:41.519141" elapsed="0.083261"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T23:18:41.603044" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-10T23:18:41.647332" 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-10-10T23:18:41.602833" elapsed="0.044631"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:41.657311" level="INFO">DELETE Request : url=http://10.30.171.136: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=node01k5jw6pt29tt0b6xqzyupxqsy6.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:41.657617" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:18:41.657864" 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-10-10T23:18:41.647777" elapsed="0.010144"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:41.667169" level="INFO">DELETE Request : url=http://10.30.171.136: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=node01k5jw6pt29tt0b6xqzyupxqsy6.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-10T23:18:41.667449" level="INFO">DELETE Response : url=http://10.30.171.136: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-10-10T23:18:41.667670" 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-10-10T23:18:41.658270" elapsed="0.009453"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-10T23:18:40.859678" elapsed="0.808216"/>
</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-10-10T23:18:38.949547" elapsed="2.718448">'[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-10-10T23:18:41.671061" level="INFO">Executing command 'pip uninstall docker-compose'.</msg>
<msg time="2026-10-10T23:18:42.507082" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T23:18:42.507489" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T23:18:42.507583" level="INFO">${stderr} = WARNING: Skipping docker-compose as it is not installed.</msg>
<msg time="2026-10-10T23:18:42.507681" 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-10-10T23:18:41.670690" elapsed="0.837041"/>
</kw>
<doc>Uninstall docker-compose on tools system</doc>
<status status="PASS" start="2026-10-10T23:18:41.670155" elapsed="0.837795"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-10-10T23:18:42.508529" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-10T23:18:42.508318" elapsed="0.001321"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-10-10T23:18:42.509958" elapsed="0.000759"/>
</kw>
<doc>Tearing down the setup.</doc>
<status status="PASS" start="2026-10-10T23:18:41.669654" elapsed="0.841224"/>
</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-10-10T23:10:42.371455" elapsed="480.139499"/>
</suite>
<status status="FAIL" start="2026-10-10T23:10:42.333618" elapsed="480.180294"/>
</suite>
<statistics>
<total>
<stat pass="1" fail="6" skip="0">All Tests</stat>
</total>
<tag>
</tag>
<suite>
<stat name="netconf-gate-callhome.txt" id="s1" pass="1" fail="6" skip="0">netconf-gate-callhome.txt</stat>
<stat name="Callhome" id="s1-s1" pass="1" fail="6" skip="0">netconf-gate-callhome.txt.Callhome</stat>
</suite>
</statistics>
<errors>
</errors>
</robot>
